Description
This bug is very similar to the integer overflow problem reported (and fixed) in RecentChanges.py:
MoinMoinBugs/IntegerOverflowInRecentChangesMacro
also
MoinMoinBugs/FreshInstallOnRHEL3
Steps to reproduce
View the PageHits page.
Example
Opening the PageHits page produces the following stack trace:
Traceback (most recent call last):
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/request.py", line 775, in run
Page(self, pagename).send_page(self, count_hit=1)
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/Page.py", line 914, in send_page
self.send_page_content(request, Parser, body, format_args=pi_formatargs, do_cache=do_cache)
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/Page.py", line 1045, in send_page_content
exec code
File "PageHits", line 6, in ?
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/formatter/base.py", line 221, in macro
return macro_obj.execute(name, args)
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/wikimacro.py", line 101, in execute
return macro(self, args)
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/macro/PageHits.py", line 28, in execute
for event in event_log.reverse():
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/logfile/logfile.py", line 88, in reverse
result = self.previous()
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/logfile/logfile.py", line 259, in previous
result = self.__previous()
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/logfile/logfile.py", line 249, in __previous
return self.parser(self.__buffer.lines[self.__rel_index])
File "/usr0/igdev/public/html/wiki/moin/lib/python2.3/site-packages/MoinMoin/logfile/eventlog.py", line 53, in parser
return (int(time_usecs), eventtype, web.parseQueryString(kvpairs))
ValueError: int() literal too large: 1104428392223656
Details
MoinMoin Version |
1.3.1 |
OS and Version |
Linux 2.6.8-24.5-smp |
Python Version |
Python 2.3.3 |
Server Setup |
Apache/2.0.46 |
Server Details |
|
Workaround
Edit line 53 of eventlog.py from:
return (int(time_usecs), eventtype, web.parseQueryString(kvpairs))
to
return (long(time_usecs), eventtype, web.parseQueryString(kvpairs))
-- TonyGarland
Discussion
Plan
- Priority: High
Assigned to: ThomasWaldmann
- Status: fixed in arch, will be in 1.3.2
