A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/usr/lib/python2.7/dist-packages/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object>, req=<flup.server.fcgi_base.Request object>) |
1116 try:
|
1117 try:
|
=> 1118 result = self.application(environ, start_response)
|
1119 try:
|
1120 for data in result:
|
result = None, self = <flup.server.fcgi.WSGIServer object>, self.application = <function script_name_fixer>, environ = {'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/srv/help.launchpad.net/moin.fcgi/', 'CONTEXT_PREFIX': '/', 'DOCUMENT_ROOT': '/srv/help.launchpad.net/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'MOIN_SESSION_443_ROOT=f1279cec9804a1ffa20cc48e8c06cde1f2017fc0', ...}, start_response = <function start_response> |
/srv/help.launchpad.net/moin.fcgi in script_name_fixer(env={'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/srv/help.launchpad.net/moin.fcgi/', 'CONTEXT_PREFIX': '/', 'DOCUMENT_ROOT': '/srv/help.launchpad.net/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'MOIN_SESSION_443_ROOT=f1279cec9804a1ffa20cc48e8c06cde1f2017fc0', ...}, start=<function start_response>) |
64 def script_name_fixer(env, start):
|
65 env['SCRIPT_NAME'] = fix_script_name
|
=> 66 return app(env, start)
|
67 application = script_name_fixer
|
68
|
global app = <werkzeug.wsgi.SharedDataMiddleware object>, env = {'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/srv/help.launchpad.net/moin.fcgi/', 'CONTEXT_PREFIX': '/', 'DOCUMENT_ROOT': '/srv/help.launchpad.net/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'MOIN_SESSION_443_ROOT=f1279cec9804a1ffa20cc48e8c06cde1f2017fc0', ...}, start = <function start_response> |
/usr/lib/python2.7/dist-packages/werkzeug/wsgi.py in __call__(self=<werkzeug.wsgi.SharedDataMiddleware object>, environ={'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/srv/help.launchpad.net/moin.fcgi/', 'CONTEXT_PREFIX': '/', 'DOCUMENT_ROOT': '/srv/help.launchpad.net/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'MOIN_SESSION_443_ROOT=f1279cec9804a1ffa20cc48e8c06cde1f2017fc0', ...}, start_response=<function start_response>) |
764 break
|
765 if file_loader is None or not self.is_allowed(real_filename):
|
=> 766 return self.app(environ, start_response)
|
767
|
768 guessed_type = mimetypes.guess_type(real_filename)
|
self = <werkzeug.wsgi.SharedDataMiddleware object>, self.app = <MoinMoin.wsgiapp.Application object>, environ = {'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/srv/help.launchpad.net/moin.fcgi/', 'CONTEXT_PREFIX': '/', 'DOCUMENT_ROOT': '/srv/help.launchpad.net/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'MOIN_SESSION_443_ROOT=f1279cec9804a1ffa20cc48e8c06cde1f2017fc0', ...}, start_response = <function start_response> |
/usr/lib/python2.7/dist-packages/MoinMoin/wsgiapp.py in __call__(self=<MoinMoin.wsgiapp.Application object>, environ={'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/srv/help.launchpad.net/moin.fcgi/', 'CONTEXT_PREFIX': '/', 'DOCUMENT_ROOT': '/srv/help.launchpad.net/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'MOIN_SESSION_443_ROOT=f1279cec9804a1ffa20cc48e8c06cde1f2017fc0', ...}, start_response=<function start_response>) |
262 context = init(request)
|
263 try:
|
=> 264 response = run(context)
|
265 finally:
|
266 context.clock.stop('total')
|
response undefined, global run = <function run>, context = <AllContext ['AllContext']> |
/usr/lib/python2.7/dist-packages/MoinMoin/wsgiapp.py in dispatch(request=<AppRequest 6455 bytes [200 OK]>, context=<AllContext ['AllContext']>, action_name=u'info') |
135 # 2. handle action
|
136 else:
|
=> 137 response = handle_action(context, pagename, action_name)
|
138 if isinstance(response, Context):
|
139 response = response.request
|
response undefined, global handle_action = <function handle_action>, context = <AllContext ['AllContext']>, pagename = u'FeatureHighlights', action_name = u'info' |
/usr/lib/python2.7/dist-packages/MoinMoin/action/info.py in execute(pagename=u'FeatureHighlights', request=<AllContext ['AllContext']>) |
369 if show_hitcounts:
|
370 from MoinMoin.stats import hitcounts
|
=> 371 request.write(hitcounts.linkto(pagename, request, 'page=' + wikiutil.url_quote(pagename)))
|
372 elif show_general:
|
373 general(page, pagename, request)
|
request = <AllContext ['AllContext']>, request.write = <bound method AllContext.write of <AllContext ['AllContext']>>, hitcounts = <module 'MoinMoin.stats.hitcounts' from '/usr/li...n2.7/dist-packages/MoinMoin/stats/hitcounts.pyc'>, hitcounts.linkto = <function linkto>, pagename = u'FeatureHighlights', global wikiutil = <module 'MoinMoin.wikiutil' from '/usr/lib/python2.7/dist-packages/MoinMoin/wikiutil.pyc'>, wikiutil.url_quote = <function url_quote> |
/usr/lib/python2.7/dist-packages/MoinMoin/stats/hitcounts.py in text(pagename=u'FeatureHighlights', request=<AllContext ['AllContext']>, params='page=FeatureHighlights') |
152 filterpage = request.values['page']
|
153
|
=> 154 days, views, edits = get_data(pagename, request, filterpage)
|
155
|
156 hits = TupleDataset()
|
days undefined, views undefined, edits undefined, global get_data = <function get_data>, pagename = u'FeatureHighlights', request = <AllContext ['AllContext']>, filterpage = u'FeatureHighlights' |
/usr/lib/python2.7/dist-packages/MoinMoin/stats/hitcounts.py in get_data(pagename=u'FeatureHighlights', request=<AllContext ['AllContext']>, filterpage=u'FeatureHighlights') |
86 log.set_filter(['VIEWPAGE', 'SAVEPAGE'])
|
87 latest = None
|
=> 88 for event in log.reverse():
|
89 # don't use event_log.date()
|
90 if latest is None:
|
event = (1751319796714081L, u'VIEWPAGE', MultiDict([('pagename', u'KPPW3.6.zip'), ('HTTP_...PPW3.6.zip'), ('REMOTE_ADDR', u'103.66.217.54')])), log = <MoinMoin.logfile.eventlog.EventLog instance>, log.reverse = <bound method EventLog.reverse of <MoinMoin.logfile.eventlog.EventLog instance>> |
/usr/lib/python2.7/dist-packages/MoinMoin/logfile/__init__.py in reverse(self=<MoinMoin.logfile.eventlog.EventLog instance>) |
114 try:
|
115 logging.log(self.loglevel, "LogFile.reverse %s" % self.__filename)
|
=> 116 result = self.previous()
|
117 except StopIteration:
|
118 return
|
result = (1751319796714081L, u'VIEWPAGE', MultiDict([('pagename', u'KPPW3.6.zip'), ('HTTP_...PPW3.6.zip'), ('REMOTE_ADDR', u'103.66.217.54')])), self = <MoinMoin.logfile.eventlog.EventLog instance>, self.previous = <bound method EventLog.previous of <MoinMoin.logfile.eventlog.EventLog instance>> |
/usr/lib/python2.7/dist-packages/MoinMoin/logfile/eventlog.py in parser(self=<MoinMoin.logfile.eventlog.EventLog instance>, line=u'1751319790840253\tVIEWPAGE\tpagename=%EF%BF%BD%C2%...D%3C%25EF%25BF%25BD.tgz&REMOTE_ADDR=103.66.217.54') |
65 # badly formatted line in file, skip it
|
66 return None
|
=> 67 return long(time_usecs), eventtype, wikiutil.parseQueryString(kvpairs)
|
68
|
69 def set_filter(self, event_types=None):
|
builtin long = <type 'long'>, time_usecs = u'1751319790840253', eventtype = u'VIEWPAGE', global wikiutil = <module 'MoinMoin.wikiutil' from '/usr/lib/python2.7/dist-packages/MoinMoin/wikiutil.pyc'>, wikiutil.parseQueryString = <function parseQueryString>, kvpairs = u'pagename=%EF%BF%BD%C2%BD%EF%BF%BD+WinRAR+%D1%B9%...D%3C%25EF%25BF%25BD.tgz&REMOTE_ADDR=103.66.217.54' |
/usr/lib/python2.7/dist-packages/MoinMoin/wikiutil.py in parseQueryString(qstr=u'pagename=%EF%BF%BD%C2%BD%EF%BF%BD+WinRAR+%D1%B9%...D%3C%25EF%25BF%25BD.tgz&REMOTE_ADDR=103.66.217.54', want_unicode=None) |
130 log.exception("call with deprecated want_unicode param, please fix caller")
|
131 return werkzeug.url_decode(qstr, charset=config.charset, errors='fallback:iso-8859-1',
|
=> 132 decode_keys=False, include_empty=False)
|
133
|
134 def makeQueryString(qstr=None, want_unicode=None, **kw):
|
decode_keys undefined, builtin False = False, include_empty undefined |
/usr/lib/python2.7/dist-packages/werkzeug/urls.py in url_decode(s=u'pagename=%EF%BF%BD%C2%BD%EF%BF%BD+WinRAR+%D1%B9%...D%3C%25EF%25BF%25BD.tgz&REMOTE_ADDR=103.66.217.54', charset='utf-8', decode_keys=False, include_empty=False, errors='fallback:iso-8859-1', separator=u'&', cls=<class 'werkzeug.datastructures.MultiDict'>) |
732 separator = separator.encode(charset or 'ascii')
|
733 return cls(_url_decode_impl(s.split(separator), charset, decode_keys,
|
=> 734 include_empty, errors))
|
735
|
736
|
include_empty = False, errors = 'fallback:iso-8859-1' |
/usr/lib/python2.7/dist-packages/werkzeug/urls.py in _url_decode_impl(pair_iter=[u'pagename=%EF%BF%BD%C2%BD%EF%BF%BD+WinRAR+%D1%B9%EF%BF%BD%EF%BF%BD%EF%BF%BD%C4%BC%EF%BF%BD.tgz', u'HTTP_USER_AGENT=Mozilla%2F5.0+%28compatible%3B+MSIE+9.0%3B+Windows+NT+6.1%3B+Trident%2F5.0%29', u'HTTP_REFERER=http%3A%2F%2Fhelp.launchpad.net%2F%...EF%25BF%25BD%25EF%25BF%25BD%3C%25EF%25BF%25BD.tgz', u'REMOTE_ADDR=103.66.217.54'], charset='utf-8', decode_keys=False, include_empty=False, errors='fallback:iso-8859-1') |
791 if charset is not None and PY2 and not decode_keys:
|
792 key = try_coerce_native(key)
|
=> 793 yield key, url_unquote_plus(value, charset, errors)
|
794
|
795
|
key = 'HTTP_REFERER', global url_unquote_plus = <function url_unquote_plus>, value = u'http%3A%2F%2Fhelp.launchpad.net%2F%25EF%25BF%25B...EF%25BF%25BD%25EF%25BF%25BD%3C%25EF%25BF%25BD.tgz', charset = 'utf-8', errors = 'fallback:iso-8859-1' |
/usr/lib/python2.7/dist-packages/werkzeug/urls.py in url_unquote(string=u'http%3A%2F%2Fhelp.launchpad.net%2F%25EF%25BF%25B...EF%25BF%25BD%25EF%25BF%25BD%3C%25EF%25BF%25BD.tgz', charset='utf-8', errors='fallback:iso-8859-1', unsafe='') |
533 rv = _unquote_to_bytes(string, unsafe)
|
534 if charset is not None:
|
=> 535 rv = rv.decode(charset, errors)
|
536 return rv
|
537
|
rv = 'http://help.launchpad.net/%EF%BF%BD\xbd%EF%BF%BD WinRAR y%EF%BF%BD%EF%BF%BD%EF%BF%BD<%EF%BF%BD.tgz', rv.decode = <built-in method decode of str object>, charset = 'utf-8', errors = 'fallback:iso-8859-1' |
/usr/lib/python2.7/encodings/utf_8.py in decode(input='http://help.launchpad.net/%EF%BF%BD\xbd%EF%BF%BD WinRAR y%EF%BF%BD%EF%BF%BD%EF%BF%BD<%EF%BF%BD.tgz', errors='fallback:iso-8859-1') |
14
|
15 def decode(input, errors='strict'):
|
=> 16 return codecs.utf_8_decode(input, errors, True)
|
17
|
18 class IncrementalEncoder(codecs.IncrementalEncoder):
|
global codecs = <module 'codecs' from '/usr/lib/python2.7/codecs.pyc'>, codecs.utf_8_decode = <built-in function utf_8_decode>, input = 'http://help.launchpad.net/%EF%BF%BD\xbd%EF%BF%BD WinRAR y%EF%BF%BD%EF%BF%BD%EF%BF%BD<%EF%BF%BD.tgz', errors = 'fallback:iso-8859-1', builtin True = True |