#473 Deleting logged in user causes all pages to raise exception

unreleased
invalid
nobody
None
General
nobody
2015-02-24
2010-07-07
Anonymous
No

Originally created by: sf-overlords

Created by: gbernhardt
Created date: 2010-05-26 22:19:36.252000
Assigned to:nobody

This probably won't affect users in production, but it's annoying during development (including for OSS developers, of course).

Expected behavior: If the user I'm logged in as is deleted, I'm automatically logged out.

Actual behavior: All forge pages raise an exception. This continues until the pyforge cookie is manually deleted.

Steps to reproduce:
1. Log in as a user
2. Delete the user (this also happens if the user is then recreated)
3. Load any Forge page

It shows this traceback:

URL: http://localhost:8080/
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/weberror/evalexception.py', line 431 in respond
  app_iter = self.application(environ, detect_start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/tw/core/middleware.py', line 43 in __call__
  return self.wsgi_app(environ, start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/tw/core/middleware.py', line 68 in wsgi_app
  resp = req.get_response(self.application)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/webob/request.py', line 919 in get_response
  application, catch_exc_info=False)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/webob/request.py', line 887 in call_application
  app_iter = application(self.environ, start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/tw/core/resource_injector.py', line 68 in _injector
  resp = req.get_response(app)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/webob/request.py', line 919 in get_response
  application, catch_exc_info=False)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/webob/request.py', line 887 in call_application
  app_iter = application(self.environ, start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/routes/middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/Users/grb/work/geek.net/forge/pyforge/pyforge/lib/base.py', line 61 in __call__
  return self._app(environ, start_response)
File '/Users/grb/work/geek.net/forge/pyforge/pyforge/lib/custom_middleware.py', line 31 in __call__
  result = self.app(environ, start_response)
File '/Users/grb/work/geek.net/forge/env/src/ming-sf-alpha4/ming/orm/middleware.py', line 13 in __call__
  result = self.app(environ, start_response)
File '/Users/grb/work/geek.net/forge/pyforge/pyforge/lib/base.py', line 41 in _base_app
  return app(environ, start_response)
File '/Users/grb/work/geek.net/forge/pyforge/pyforge/lib/base.py', line 40 in <lambda>
  app = lambda e,s: TGController.__call__(self, e, s)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/Users/grb/work/geek.net/forge/env/src/turbogears2/tg/controllers/dispatcher.py', line 254 in _perform_call
  r = self._call(func, params, remainder=remainder)
File '/Users/grb/work/geek.net/forge/env/src/turbogears2/tg/controllers/decoratedcontroller.py', line 129 in _call
  response = self._render_response(controller, output)
File '/Users/grb/work/geek.net/forge/env/src/turbogears2/tg/controllers/decoratedcontroller.py', line 305 in _render_response
  template_name=template_name)
File '/Users/grb/work/geek.net/forge/env/src/turbogears2/tg/render.py', line 156 in render
  return render_function(template_name, template_vars, **kwargs)
File '/Users/grb/work/geek.net/forge/env/src/turbogears2/tg/render.py', line 186 in render_genshi
  **kwargs)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/templating.py', line 338 in render_genshi
  ns_options=('method'), method=method)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/pylons/templating.py', line 334 in render_template
  encoding=None))
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/core.py', line 179 in render
  return encode(generator, method=method, encoding=encoding, out=out)
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/output.py', line 60 in encode
  return _encode(u''.join(list(iterator)))
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/output.py', line 311 in __call__
  for kind, data, pos in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/output.py', line 592 in __call__
  for kind, data, pos in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/output.py', line 698 in __call__
  for kind, data, pos in chain(stream, [(None, None, None)]):
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/output.py', line 532 in __call__
  for ev in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/core.py', line 283 in _ensure
  for event in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/base.py', line 569 in _include
  for event in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/markup.py', line 298 in _match
  ctxt, start=idx + 1, **vars):
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/markup.py', line 245 in _match
  for event in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/base.py', line 543 in _exec
  for event in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/base.py', line 496 in _eval
  for kind, data, pos in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/base.py', line 558 in _flatten
  for event in self._flatten(substream, ctxt, **vars):
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/base.py', line 551 in _flatten
  for event in stream:
File '/Users/grb/work/geek.net/forge/env/lib/python2.6/site-packages/genshi/template/directives.py', line 377 in __call__
  for item in iterable:
File '/Users/grb/work/geek.net/forge/pyforge/pyforge/lib/helpers.py', line 369 in pop_user_notifications
  mbox = M.Mailbox.query.get(user_id=user._id, type='flash')
AttributeError: 'NoneType' object has no attribute '_id'

Discussion

  • Dave Brondsema

    Dave Brondsema - 2012-12-12
    • Description has changed:

    Diff:

    
    
    • status: open --> invalid
    • milestone: --> forge-dec-14
     
  • Dave Brondsema

    Dave Brondsema - 2012-12-12

    extremely old ticket that lost its milestone.

     

Log in to post a comment.