<type 'exceptions.LookupError'>
Python 2.7.17: /usr/bin/python
Tue Mar 19 05:18:00 2024

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 run(self=<flup.server.fcgi_base.Request object>)
    556         """Runs the handler, flushes the streams, and ends the request."""
    557         try:
=>  558             protocolStatus, appStatus = self.server.handler(self)
    559         except:
    560             traceback.print_exc(file=self.stderr)
protocolStatus undefined, appStatus undefined, self = <flup.server.fcgi_base.Request object>, self.server = <flup.server.fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <flup.server.fcgi.WSGIServer object>>
 /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_CONNECTION': 'close', 'HTTP_HOST': 'help.launchpad.net', 'HTTP_USER_AGENT': 'claudebot', ...}, 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_CONNECTION': 'close', 'HTTP_HOST': 'help.launchpad.net', 'HTTP_USER_AGENT': 'claudebot', ...}, 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_CONNECTION': 'close', 'HTTP_HOST': 'help.launchpad.net', 'HTTP_USER_AGENT': 'claudebot', ...}, 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_CONNECTION': 'close', 'HTTP_HOST': 'help.launchpad.net', 'HTTP_USER_AGENT': 'claudebot', ...}, 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_CONNECTION': 'close', 'HTTP_HOST': 'help.launchpad.net', 'HTTP_USER_AGENT': 'claudebot', ...}, 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_CONNECTION': 'close', 'HTTP_HOST': 'help.launchpad.net', 'HTTP_USER_AGENT': 'claudebot', ...}, 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 run(context=<AllContext ['AllContext']>)
     87                 response = xmlrpc.xmlrpc2(XMLRPCContext(request))
     88             else:
=>   89                 response = dispatch(request, context, action_name)
     90             context.cfg.session_service.finalize(context, context.session)
     91             return response
response undefined, global dispatch = <function dispatch>, request = <AppRequest 6323 bytes [200 OK]>, context = <AllContext ['AllContext']>, action_name = u'info'
 /usr/lib/python2.7/dist-packages/MoinMoin/wsgiapp.py in dispatch(request=<AppRequest 6323 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'Code/TeamBranches', action_name = u'info'
 /usr/lib/python2.7/dist-packages/MoinMoin/wsgiapp.py in handle_action(context=<AllContext ['AllContext']>, pagename=u'Code/TeamBranches', action_name=u'info')
    201             context.page.send_page()
    202         else:
=>  203             handler(context.page.page_name, context)
    204 
    205     return context
handler = <function execute>, context = <AllContext ['AllContext']>, context.page = <MoinMoin.Page.Page object>, context.page.page_name = u'Code/TeamBranches'
 /usr/lib/python2.7/dist-packages/MoinMoin/action/info.py in execute(pagename=u'Code/TeamBranches', 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'Code/TeamBranches', 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 linkto(pagename=u'Code/TeamBranches', request=<AllContext ['AllContext']>, params='page=Code/TeamBranches')
     30 
     31     if not request.cfg.chart_options:
=>   32         return text(pagename, request, params)
     33 
     34     if _debug:
global text = <function text>, pagename = u'Code/TeamBranches', request = <AllContext ['AllContext']>, params = 'page=Code/TeamBranches'
 /usr/lib/python2.7/dist-packages/MoinMoin/stats/hitcounts.py in text(pagename=u'Code/TeamBranches', request=<AllContext ['AllContext']>, params='page=Code/TeamBranches')
    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'Code/TeamBranches', request = <AllContext ['AllContext']>, filterpage = u'Code/TeamBranches'
 /usr/lib/python2.7/dist-packages/MoinMoin/stats/hitcounts.py in get_data(pagename=u'Code/TeamBranches', request=<AllContext ['AllContext']>, filterpage=u'Code/TeamBranches')
     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 = (1708820245607368L, u'VIEWPAGE', MultiDict([('pagename', u'FrontPage'), ('HTTP_US.../6533.18.5'), ('REMOTE_ADDR', u'3.231.213.242')])), 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 = (1708820245607368L, u'VIEWPAGE', MultiDict([('pagename', u'FrontPage'), ('HTTP_US.../6533.18.5'), ('REMOTE_ADDR', u'3.231.213.242')])), 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/__init__.py in previous(self=<MoinMoin.logfile.eventlog.EventLog instance>)
    321             while result is None:
    322                 logging.log(self.loglevel, "LogFile.previous %s" % self.__filename)
=>  323                 result = self.__previous()
    324             if self.filter and not self.filter(result):
    325                 result = None
result = None, self = <MoinMoin.logfile.eventlog.EventLog instance>, self.__previous undefined
 /usr/lib/python2.7/dist-packages/MoinMoin/logfile/__init__.py in __previous(self=<MoinMoin.logfile.eventlog.EventLog instance>)
    310         if self.peek(-1):
    311             raise StopIteration
=>  312         return self.parser(self.__buffer.lines[self.__rel_index])
    313 
    314     def previous(self):
self = <MoinMoin.logfile.eventlog.EventLog instance>, self.parser = <bound method EventLog.parser of <MoinMoin.logfile.eventlog.EventLog instance>>, self.__buffer undefined, self.__rel_index undefined
 /usr/lib/python2.7/dist-packages/MoinMoin/logfile/eventlog.py in parser(self=<MoinMoin.logfile.eventlog.EventLog instance>, line=u'1708820242284854\tVIEWPAGE\tpagename=Feedback&HTTP...F1A543%A0Safari%2F419.3&REMOTE_ADDR=3.231.213.242')
     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'1708820242284854', 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=Feedback&HTTP_USER_AGENT=Mozilla%2F5.0%...F1A543%A0Safari%2F419.3&REMOTE_ADDR=3.231.213.242'
 /usr/lib/python2.7/dist-packages/MoinMoin/wikiutil.py in parseQueryString(qstr=u'pagename=Feedback&HTTP_USER_AGENT=Mozilla%2F5.0%...F1A543%A0Safari%2F419.3&REMOTE_ADDR=3.231.213.242', 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=Feedback&HTTP_USER_AGENT=Mozilla%2F5.0%...F1A543%A0Safari%2F419.3&REMOTE_ADDR=3.231.213.242', 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/datastructures.py in __init__(self=MultiDict([]), mapping=<generator object _url_decode_impl>)
    407         else:
    408             tmp = {}
=>  409             for key, value in mapping or ():
    410                 tmp.setdefault(key, []).append(value)
    411             dict.__init__(self, tmp)
key = 'pagename', value = u'Feedback', mapping = <generator object _url_decode_impl>
 /usr/lib/python2.7/dist-packages/werkzeug/urls.py in _url_decode_impl(pair_iter=[u'pagename=Feedback', u'HTTP_USER_AGENT=Mozilla%2F5.0%A0%28iPhone%A0U%A0...29Version%2F3.0%A0Mobile%2F1A543%A0Safari%2F419.3', u'REMOTE_ADDR=3.231.213.242'], 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_plus(s=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')
    554     else:
    555         s = s.replace(b'+', b' ')
=>  556     return url_unquote(s, charset, errors)
    557 
    558 
global url_unquote = <function url_unquote>, s = 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

<type 'exceptions.LookupError'>: unknown error handler name 'fallback:iso-8859-1'
      args = ("unknown error handler name 'fallback:iso-8859-1'",)
      message = "unknown error handler name 'fallback:iso-8859-1'"