DatabaseModifiedError

The revision being read has been discarded - you should call Xapian::Database::reopen() and retry the operation

If you want to report a bug, please save this page and attach it to your bug report.

Traceback

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

  1. /home/lotek/lib/python2.5/site-packages/MoinMoin/request/__init__.py in run (self=<MoinMoin.request.request_wsgi.Request object at 0xaecd5aac>)

    1. 1309 self.page.send_page()

    2. 1310 else:

    3. 1311 handler(self.page.page_name, self)

    4. 1312

    5. 1313 # every action that didn't use to raise MoinMoinFinish must call this now:

    6. handler = <function execute at 0xaeda2fb4>

    7. self = <MoinMoin.request.request_wsgi.Request object at 0xaecd5aac>

    8. self.page = <MoinMoin.Page.Page object at 0xaed075ec>

    9. self.page.page_name = u'CategoryBash'

  2. /home/lotek/lib/python2.5/site-packages/MoinMoin/action/edit.py in execute (pagename=u'CategoryBash', request=<MoinMoin.request.request_wsgi.Request object at 0xaecd5aac>)

    1. 183

    2. 184 # sets revision number to default for further actions

    3. 185 request.rev = 0

    4. 186 request.theme.add_msg(savemsg, "info")

    5. 187 pg.send_page()

    6. pg = <MoinMoin.Page.Page object at 0xaed12f2c>

    7. pg.send_page = <bound method Page.send_page of <MoinMoin.Page.Page object at 0xaed12f2c>>

  3. /home/lotek/lib/python2.5/site-packages/MoinMoin/Page.py in send_page (self=<MoinMoin.Page.Page object at 0xaed12f2c>, **keywords={})

    1. 1196 format_args=pi['formatargs'],

    2. 1197 do_cache=do_cache,

    3. 1198 start_line=pi['lines'])

    4. 1199

    5. 1200 # check for pending footnotes

    6. start_line undefined

    7. pi = {'acl': <MoinMoin.security.AccessControlList instance at 0xaed12fcc>, 'format': 'wiki', 'formatargs': '', 'language': 'de', 'lines': 0}

  4. /home/lotek/lib/python2.5/site-packages/MoinMoin/Page.py in send_page_content (self=<MoinMoin.Page.Page object at 0xaed12f2c>, request=<MoinMoin.request.request_wsgi.Request object at 0xaecd5aac>, body=u"= CategoryBash =\n\n'''List of pages in this categ...(category:CategoryBash)>>\n\n----\nCategoryCategory\n", format='wiki', format_args='', do_cache=1, **kw={'start_line': 0})

    1. 1280

    2. 1281 if not (do_cache and self.canUseCache(Parser)):

    3. 1282 self.format(parser)

    4. 1283 else:

    5. 1284 try:

    6. self = <MoinMoin.Page.Page object at 0xaed12f2c>

    7. self.format = <bound method Page.format of <MoinMoin.Page.Page object at 0xaed12f2c>>

    8. parser = <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>

  5. /home/lotek/lib/python2.5/site-packages/MoinMoin/Page.py in format (self=<MoinMoin.Page.Page object at 0xaed12f2c>, parser=<MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>)

    1. 1301 def format(self, parser):

    2. 1302 """ Format and write page content without caching """

    3. 1303 parser.format(self.formatter)

    4. 1304

    5. 1305 def execute(self, request, parser, code):

    6. parser = <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>

    7. parser.format = <bound method Parser.format of <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>>

    8. self = <MoinMoin.Page.Page object at 0xaed12f2c>

    9. self.formatter = <MoinMoin.formatter.text_html.Formatter instance at 0xaed03f4c>

  6. /home/lotek/lib/python2.5/site-packages/MoinMoin/parser/text_moin_wiki.py in format (self=<MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>, formatter=<MoinMoin.formatter.text_html.Formatter instance at 0xaed03f4c>, inhibit_p=False)

    1. 1544

    2. 1545 # Scan line, format and write

    3. 1546 formatted_line = self.scan(line, inhibit_p=inhibit_p)

    4. 1547 self.request.write(formatted_line)

    5. 1548

    6. formatted_line = u'<p class="line867"><strong>List of pages in this category:</strong> '

    7. self = <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>

    8. self.scan = <bound method Parser.scan of <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>>

    9. line = u'<<FullSearchCached(category:CategoryBash)>> '

    10. inhibit_p = False

  7. /home/lotek/lib/python2.5/site-packages/MoinMoin/parser/text_moin_wiki.py in scan (self=<MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>, line=u'<<FullSearchCached(category:CategoryBash)>> ', inhibit_p=False)

    1. 1358 self.in_table or self.in_list):

    2. 1359 result.append(self.formatter.paragraph(1, css_class="line867"))

    3. 1360 result.append(self.replace(match, inhibit_p))

    4. 1361 end = match.end()

    5. 1362 lastpos = end

    6. result = ['<p class="line867">']

    7. result.append = <built-in method append of list object at 0xaed03e4c>

    8. self = <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>

    9. self.replace = <bound method Parser.replace of <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>>

    10. match = <_sre.SRE_Match object at 0xadf024f8>

    11. inhibit_p = False

  8. /home/lotek/lib/python2.5/site-packages/MoinMoin/parser/text_moin_wiki.py in replace (self=<MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>, match=<_sre.SRE_Match object at 0xadf024f8>, inhibit_p=False)

    1. 1402 # Get replace method and replace hit

    2. 1403 replace_func = getattr(self, '_%s_repl' % type)

    3. 1404 result.append(replace_func(hit, match.groupdict()))

    4. 1405 return ''.join(result)

    5. 1406 else:

    6. result = []

    7. result.append = <built-in method append of list object at 0xaed12d2c>

    8. replace_func = <bound method Parser._macro_repl of <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>>

    9. hit = u'category:CategoryBash'

    10. match = <_sre.SRE_Match object at 0xadf024f8>

    11. match.groupdict = <built-in method groupdict of _sre.SRE_Match object at 0xadf024f8>

  9. /home/lotek/lib/python2.5/site-packages/MoinMoin/parser/text_moin_wiki.py in _macro_repl (self=<MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>, word=u'category:CategoryBash', groups={u'big': None, u'big_off': None, u'big_on': None, u'comment': None, u'dl': None, u'email': None, u'emph': None, u'emph_ib_or_bi': None, u'emph_ibb': None, u'emph_ibi': None, ...})

    1. 1325 if self.macro is None:

    2. 1326 self.macro = macro.Macro(self)

    3. 1327 return self.formatter.macro(self.macro, macro_name, macro_args, markup=groups.get('macro'))

    4. 1328 _macro_name_repl = _macro_repl

    5. 1329 _macro_args_repl = _macro_repl

    6. self = <MoinMoin.parser.text_moin_wiki.Parser instance at 0xaed076cc>

    7. self.formatter = <MoinMoin.formatter.text_html.Formatter instance at 0xaed03f4c>

    8. self.formatter.macro = <bound method Formatter.macro of <MoinMoin.formatter.text_html.Formatter instance at 0xaed03f4c>>

    9. self.macro = <MoinMoin.macro.Macro instance at 0xaed0356c>

    10. macro_name = u'FullSearchCached'

    11. macro_args = u'category:CategoryBash'

    12. markup undefined

    13. groups = {u'big': None, u'big_off': None, u'big_on': None, u'comment': None, u'dl': None, u'email': None, u'emph': None, u'emph_ib_or_bi': None, u'emph_ibb': None, u'emph_ibi': None, ...}

    14. groups.get = <built-in method get of dict object at 0xaed5f714>

  10. /home/lotek/lib/python2.5/site-packages/MoinMoin/formatter/__init__.py in macro (self=<MoinMoin.formatter.text_html.Formatter instance at 0xaed03f4c>, macro_obj=<MoinMoin.macro.Macro instance at 0xaed0356c>, name=u'FullSearchCached', args=u'category:CategoryBash', markup=u'<<FullSearchCached(category:CategoryBash)>>')

    1. 308 # call the macro

    2. 309 try:

    3. 310 return macro_obj.execute(name, args)

    4. 311 except ImportError, err:

    5. 312 errmsg = unicode(err)

    6. macro_obj = <MoinMoin.macro.Macro instance at 0xaed0356c>

    7. macro_obj.execute = <bound method Macro.execute of <MoinMoin.macro.Macro instance at 0xaed0356c>>

    8. name = u'FullSearchCached'

    9. args = u'category:CategoryBash'

  11. /home/lotek/lib/python2.5/site-packages/MoinMoin/macro/__init__.py in execute (self=<MoinMoin.macro.Macro instance at 0xaed0356c>, macro_name=u'FullSearchCached', args=u'category:CategoryBash')

    1. 126 else:

    2. 127 raise ImportError("Cannot load macro %s" % macro_name)

    3. 128 return execute(self, args)

    4. 129

    5. 130 def _m_lang(self, text):

    6. execute = <function execute at 0xaec396f4>

    7. self = <MoinMoin.macro.Macro instance at 0xaed0356c>

    8. args = u'category:CategoryBash'

  12. /home/lotek/lib/python2.5/site-packages/MoinMoin/macro/FullSearch.py in execute (macro=<MoinMoin.macro.Macro instance at 0xaed0356c>, needle=u'category:CategoryBash')

    1. 104

    2. 105 # Search the pages and return the results

    3. 106 results = search.searchPages(request, needle, sort='page_name')

    4. 107

    5. 108 return results.pageList(request, macro.formatter, paging=False)

    6. results undefined

    7. global search = <module 'MoinMoin.search' from '/home/lotek/lib/...n2.5/site-packages/MoinMoin/search/__init__.pyc'>

    8. search.searchPages = <function searchPages at 0xaecca844>

    9. request = <MoinMoin.request.request_wsgi.Request object at 0xaecd5aac>

    10. needle = u'category:CategoryBash'

    11. sort undefined

  13. /home/lotek/lib/python2.5/site-packages/MoinMoin/search/__init__.py in searchPages (request=<MoinMoin.request.request_wsgi.Request object at 0xaecd5aac>, query=<MoinMoin.search.queryparser.AndExpression instance at 0xaed03d0c>, sort='page_name', mtime=None, historysearch=None, **kw={})

    1. 33 if isinstance(query, str) or isinstance(query, unicode):

    2. 34 query = QueryParser(**kw).parse_query(query)

    3. 35 return Search(request, query, sort, mtime=mtime,

    4. 36 historysearch=historysearch).run()

    5. 37

    6. historysearch = None

    7. ).run undefined

  14. /home/lotek/lib/python2.5/site-packages/MoinMoin/search/builtin.py in run (self=<MoinMoin.search.builtin.Search instance at 0xaed039ac>)

    1. 458 start = time.time()

    2. 459 if self.request.cfg.xapian_search:

    3. 460 hits = self._xapianSearch()

    4. 461 logging.debug("_xapianSearch found %d hits" % len(hits))

    5. 462 else:

    6. hits undefined

    7. self = <MoinMoin.search.builtin.Search instance at 0xaed039ac>

    8. self._xapianSearch = <bound method Search._xapianSearch of <MoinMoin.search.builtin.Search instance at 0xaed039ac>>

  15. /home/lotek/lib/python2.5/site-packages/MoinMoin/search/builtin.py in _xapianSearch (self=<MoinMoin.search.builtin.Search instance at 0xaed039ac>)

    1. 525 query = xapwrap.index.QObjQuery(query)

    2. 526 enq, mset, hits = index.search(query, sort=self.sort,

    3. 527 historysearch=self.historysearch)

    4. 528 clock.stop('_xapianQuery')

    5. 529

    6. historysearch undefined

    7. self = <MoinMoin.search.builtin.Search instance at 0xaed039ac>

    8. self.historysearch = None

  16. /home/lotek/lib/python2.5/site-packages/MoinMoin/search/builtin.py in search (self=<MoinMoin.search.Xapian.Index instance at 0xaed035ec>, query=<MoinMoin.support.xapwrap.index.QObjQuery instance at 0xaed145cc>, **kw={'historysearch': None, 'sort': 'page_name'})

    1. 222 # raise self.LockedException

    2. 223 #try:

    3. 224 hits = self._search(query, **kw)

    4. 225 #finally:

    5. 226 # self.read_lock.release()

    6. hits undefined

    7. self = <MoinMoin.search.Xapian.Index instance at 0xaed035ec>

    8. self._search = <bound method Index._search of <MoinMoin.search.Xapian.Index instance at 0xaed035ec>>

    9. query = <MoinMoin.support.xapwrap.index.QObjQuery instance at 0xaed145cc>

    10. kw = {'historysearch': None, 'sort': 'page_name'}

  17. /home/lotek/lib/python2.5/site-packages/MoinMoin/search/Xapian.py in _search (self=<MoinMoin.search.Xapian.Index instance at 0xaed035ec>, query=<MoinMoin.support.xapwrap.index.QObjQuery instance at 0xaed145cc>, sort='page_name', historysearch=None)

    1. 270

    2. 271 hits = searcher.search(query, valuesWanted=['pagename',

    3. 272 'attachment', 'mtime', 'wikiname', 'revision'], **kw)

    4. 273 self.request.cfg.xapian_searchers.append((searcher, timestamp))

    5. 274 return hits

    6. kw = {'sortKey': 'pagename'}

  18. /home/lotek/lib/python2.5/site-packages/MoinMoin/support/xapwrap/index.py in protectedMethod (self=<MoinMoin.support.xapwrap.index.ReadOnlyIndex instance at 0xaecd596c>, *args=(<MoinMoin.support.xapwrap.index.QObjQuery instance at 0xaed145cc>,), **kwargs={'sortKey': 'pagename', 'valuesWanted': ['pagename', 'attachment', 'mtime', 'wikiname', 'revision']})

    1. 417 self.setupDB()

    2. 418 try:

    3. 419 return method(self, *args, **kwargs)

    4. 420 ## # test that this works and doesn't recurse infinitely

    5. 421 ## except DatabaseModifiedError:

    6. method = <function search at 0xaec31994>

    7. self = <MoinMoin.support.xapwrap.index.ReadOnlyIndex instance at 0xaecd596c>

    8. args = (<MoinMoin.support.xapwrap.index.QObjQuery instance at 0xaed145cc>,)

    9. kwargs = {'sortKey': 'pagename', 'valuesWanted': ['pagename', 'attachment', 'mtime', 'wikiname', 'revision']}

  19. /home/lotek/lib/python2.5/site-packages/MoinMoin/support/xapwrap/index.py in search (self=<MoinMoin.support.xapwrap.index.ReadOnlyIndex instance at 0xaecd596c>, query=<MoinMoin.support.xapwrap.index.QObjQuery instance at 0xaed145cc>, sortKey='pagename', startingIndex=0, batchSize=1000000, sortIndex=2, sortAscending=True, sortByRelevence=False, valuesWanted=['pagename', 'attachment', 'mtime', 'wikiname', 'revision'], collapseKey=None)

    1. 668 self._searchSessions[qString] = (enq, sortIndex)

    2. 669

    3. 670 mset = enq.get_mset(startingIndex, batchSize)

    4. 671 results = []

    5. 672 for m in mset:

    6. mset undefined

    7. enq undefined

    8. startingIndex = 0

    9. batchSize = 1000000

DatabaseModifiedError

The revision being read has been discarded - you should call Xapian::Database::reopen() and retry the operation

System Details