Description
Hitting [info] on deleted page may causes traceback:
Traceback (most recent call last): File "/home/twaldmann/moincvs/moin--main--1.3/MoinMoin/request.py", line 747, in run handler(page.page_name, self) File "/home/twaldmann/moincvs/moin--main--1.3/MoinMoin/wikiaction.py", line 400, in do_info history(page, pagename, request) File "/home/twaldmann/moincvs/moin--main--1.3/MoinMoin/wikiaction.py", line 275, in history for line in log: File "/home/twaldmann/moincvs/moin--main--1.3/MoinMoin/logfile/logfile.py", line 233, in next result = self.__next() File "/home/twaldmann/moincvs/moin--main--1.3/MoinMoin/logfile/logfile.py", line 221, in __next result = self.parser(self.__buffer.lines[self.__rel_index]) File "/home/twaldmann/moincvs/moin--main--1.3/MoinMoin/logfile/editlog.py", line 124, in parser result.ed_time_usecs = int(result.ed_time_usecs or '0') ValueError: invalid literal for int(): .dos
It does not happen on my wiki running latest code from tla.
- I created a new page
- Deleted the page
Accessed the page using http://nirs.dyndns.org/main/FullSearchTest?action=info
Example
URL: http://moinmaster.wikiwikiweb.de/SystemPagesInRussianGroup?action=info
Details
Happens on moinmaster.
This page used to exist.
Workaround
Discussion
De facto the page is deleted (current points to lastrev+1). Don't know why it is deleted, but that is another topic.
This is a strange bug. Except one unrelated error in mig5 (missing field in the self-made "missing editlog entry" lines) I didn't find anything wrong.
Some debug code shows result.ed_time_usecs to contain u'12345678000000' (or similar) just one code line before it fails with that backtrace.
That '.dos' seems last part of the filename, but filename is stored in 'extra' field.
No idea what's going wrong.
It looks like special rare case when something is broken in the page, because it can't be reproduced on a new page.
I get same bug with different error string on this page: http://nirs.dyndns.org/main/RevBugTestCase?action=info
Note the this line in the backtrace:
/Volumes/Home/nir/Projects/moin/main/MoinMoin/logfile/editlog.py in parser(self=<EditLog instance>, line=u'lhost\t1093650751.xx.xxxx\t\t\n')
this is the log of that page: edit-log
Seems that log reading code is broken.
I added debug code that collect the lines sent to editlog.parser. This code shows that for that testcase:
- Log is read and parsed 3 times?! maybe the junk data is sent 3 times, each time there is an error, whole lines sents before the error are printed.
- rev 7 is read first, then revs 1-7 are read.
- The junk line that causes the exceptions is sent after the log is finished, several times!
same testing with logfile.parser show no problem - so the problem must be somewhere in the editlog class.
Plan
- Priority: high
- Assigned to: All
- Status: fixed in patch-292