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=27d6cfb24cd5c578a1e85848008f0d62dad93c32', ...}, 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=27d6cfb24cd5c578a1e85848008f0d62dad93c32', ...}, 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=27d6cfb24cd5c578a1e85848008f0d62dad93c32', ...}, 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=27d6cfb24cd5c578a1e85848008f0d62dad93c32', ...}, 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=27d6cfb24cd5c578a1e85848008f0d62dad93c32', ...}, 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=27d6cfb24cd5c578a1e85848008f0d62dad93c32', ...}, 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 6292 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'RemoteBugCoverage', action_name = u'info' |
/usr/lib/python2.7/dist-packages/MoinMoin/action/info.py in execute(pagename=u'RemoteBugCoverage', 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'RemoteBugCoverage', 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'RemoteBugCoverage', request=<AllContext ['AllContext']>, params='page=RemoteBugCoverage') |
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'RemoteBugCoverage', request = <AllContext ['AllContext']>, filterpage = u'RemoteBugCoverage' |
/usr/lib/python2.7/dist-packages/MoinMoin/stats/hitcounts.py in get_data(pagename=u'RemoteBugCoverage', request=<AllContext ['AllContext']>, filterpage=u'RemoteBugCoverage') |
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 = (1745985481031080L, u'VIEWPAGE', MultiDict([('pagename', u'HelpOnMacros/MonthCale...m/gptbot)'), ('REMOTE_ADDR', u'20.171.207.165')])), 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 = (1745985481031080L, u'VIEWPAGE', MultiDict([('pagename', u'HelpOnMacros/MonthCale...m/gptbot)'), ('REMOTE_ADDR', u'20.171.207.165')])), 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'1745985480893953\tVIEWPAGE\tpagename=Code%2FGit&HT...F1A543%A0Safari%2F419.3&REMOTE_ADDR=18.175.96.254') |
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'1745985480893953', 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=Code%2FGit&HTTP_USER_AGENT=Mozilla%2F5....F1A543%A0Safari%2F419.3&REMOTE_ADDR=18.175.96.254' |
/usr/lib/python2.7/dist-packages/MoinMoin/wikiutil.py in parseQueryString(qstr=u'pagename=Code%2FGit&HTTP_USER_AGENT=Mozilla%2F5....F1A543%A0Safari%2F419.3&REMOTE_ADDR=18.175.96.254', 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=Code%2FGit&HTTP_USER_AGENT=Mozilla%2F5....F1A543%A0Safari%2F419.3&REMOTE_ADDR=18.175.96.254', 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=Code%2FGit', u'HTTP_USER_AGENT=Mozilla%2F5.0%A0%28iPhone%A0U%A0...29Version%2F3.0%A0Mobile%2F1A543%A0Safari%2F419.3', u'REMOTE_ADDR=18.175.96.254'], 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_USER_AGENT', global url_unquote_plus = <function url_unquote_plus>, value = u'Mozilla%2F5.0%A0%28iPhone%A0U%A0CPU+like%A0Mac%A...29Version%2F3.0%A0Mobile%2F1A543%A0Safari%2F419.3', charset = 'utf-8', errors = 'fallback:iso-8859-1' |
/usr/lib/python2.7/dist-packages/werkzeug/urls.py in url_unquote(string=u'Mozilla%2F5.0%A0%28iPhone%A0U%A0CPU like%A0Mac%A...29Version%2F3.0%A0Mobile%2F1A543%A0Safari%2F419.3', 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 = 'Mozilla/5.0\xa0(iPhone\xa0U\xa0CPU like\xa0Mac\xa0OS X\xa0en)\xa0Appl...\xa0like\xa0Gecko)Version/3.0\xa0Mobile/1A543\xa0Safari/419.3', 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='Mozilla/5.0\xa0(iPhone\xa0U\xa0CPU like\xa0Mac\xa0OS X\xa0en)\xa0Appl...\xa0like\xa0Gecko)Version/3.0\xa0Mobile/1A543\xa0Safari/419.3', 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 = 'Mozilla/5.0\xa0(iPhone\xa0U\xa0CPU like\xa0Mac\xa0OS X\xa0en)\xa0Appl...\xa0like\xa0Gecko)Version/3.0\xa0Mobile/1A543\xa0Safari/419.3', errors = 'fallback:iso-8859-1', builtin True = True |