IndexError crash during pagination on 0.6.3

Brett Smith brett at sfconservancy.org
Mon Feb 1 15:45:35 UTC 2021


Hi all,

I got this crash report from the server at k.sfconservancy.org over the 
weekend, and the comment in the last line jumped out at me. It sounds 
like there's a situation where the code assumes a list can't be empty, 
but in fact it can be. The full details are below, except I've removed 
bits that just reveal too much about our server setup or the visitor.

You're welcome to browse around or clone the repository if it helps you 
debug the problem; it's all public.


TRACEBACK:

Traceback (most recent call last):

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/appwrappers/session.py", line 71, in __call__

     response = self.next_handler(controller, environ, context)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/appwrappers/i18n.py", line 71, in __call__

     return self.next_handler(controller, environ, context)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/wsgiapp.py", line 243, in _dispatch

     return controller(environ, context)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/kallithea/lib/base.py", line 536, in __call__

     return super(BaseController, self).__call__(environ, context)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/controllers/dispatcher.py", line 118, in __call__

     response = self._perform_call(context)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/controllers/dispatcher.py", line 107, in _perform_call

     r = self._call(action, params, remainder=remainder, context=context)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/controllers/decoratedcontroller.py", line 129, in _call

     output = controller_caller(context_config, bound_controller_callable, remainder, params)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/controllers/decoration.py", line 21, in _decorated_controller_caller

     return application_controller_caller(tg_config, controller, remainder, params)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/tg/configurator/components/dispatch.py", line 114, in _call_controller

     return controller(*remainder, **params)

   File "<decorator-gen-4>", line 2, in index

       File "/usr/local/src/kallithea/lib/python3.7/site-packages/kallithea/lib/auth.py", line 608, in __wrapper

     return func(*fargs, **fkwargs)

   File "<decorator-gen-3>", line 2, in index

       File "/usr/local/src/kallithea/lib/python3.7/site-packages/kallithea/lib/auth.py", line 657, in __wrapper

     return func(*fargs, **fkwargs)

   File "/usr/local/src/kallithea/lib/python3.7/site-packages/kallithea/controllers/changelog.py", line 148, in index

     c.first_revision = c.cs_pagination[0] # pagination is never empty here!

IndexError: list index out of range

ENVIRON:

	HTTP_ACCEPT: '*/*'

	HTTP_ACCEPT_CHARSET: 'utf-8;q=0.7,iso-8859-1;q=0.2,*;q=0.1'

	HTTP_CONNECTION: 'Keep-Alive'

	HTTP_HOST: 'k.sfconservancy.org'

	HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help at moz.com)

	PATH_INFO: '/website/changelog/49c5bca7430b19dd09e0e12d2b908b86d278d325/www/conservancy/static/supporter/index.html'

	QUERY_STRING: 'page=2'

	REQUEST_METHOD: 'GET'

	SCRIPT_NAME: ''

	SERVER_PROTOCOL: 'HTTP/1.1'

	SERVER_SOFTWARE: 'waitress'

WSGI:

	beaker.session: {'_domain': None, '_path': '/', '_accessed_time': 1612166635.5476, '_creation_time': 1612166635.5476}

	pylons.routes_dict: {'repo_name': 'website', 'revision': '49c5bca7430b19dd09e0e12d2b908b86d278d325', 'f_path': 'www/conservancy/static/supporter/index.html', 'action': 'index', 'controller': 'changelog'}

	tg.routes_dict: {'repo_name': 'website', 'revision': '49c5bca7430b19dd09e0e12d2b908b86d278d325', 'f_path': 'www/conservancy/static/supporter/index.html', 'action': 'index', 'controller': 'changelog'}

	webob._parsed_query_vars: (GET([('page', '2')]), 'page=2')

	webob.adhoc_attrs: {'authuser': <AuthUser 1: 'default'>, 'ip_addr': '[redacted]', 'needs_csrf_check': False, 'routes_local': {'mapper': <kallithea.config.routing.Mapper object at 0x7f5d38459390>, 'host': 'k.sfconservancy.org', 'protocol': 'https', 'redirect': <function redirect at 0x7f5d3aff8b70>}}

	wsgi.input_terminated: True

	wsgi.multiprocess: False

	wsgi.multithread: True

	wsgi.run_once: False

	wsgi.url_scheme: 'https'

	wsgi.version: (1, 0)

	wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x7f5d306a8668>, {'repo_name': 'website', 'revision': '49c5bca7430b19dd09e0e12d2b908b86d278d325', 'f_path': 'www/conservancy/static/supporter/index.html', 'action': 'index', 'controller': 'changelog'})

REQUEST:

	<Request at 0x7f5d30575cf8 GET https://k.sfconservancy.org/error/document?page=2>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sfconservancy.org/pipermail/kallithea-general/attachments/20210201/2f98bd8f/attachment.html>


More information about the kallithea-general mailing list