Comment 6 for bug 504291

Revision history for this message
Gary Poster (gary) wrote :

lib/canonical/launchpad/webapp/publication.py, line 167, in beforeTraversal, does a transaction.begin(), as per standard Zope practice. This is within the following traceback:

  File "/home/gary/launchpad/lp-sourcedeps/eggs/zope.server-3.6.1-py2.5.egg/zope/server/taskthreads.py", line 48, in handlerThread
    task.service()
  File "/home/gary/launchpad/lp-sourcedeps/eggs/zope.server-3.6.1-py2.5.egg/zope/server/serverchannelbase.py", line 207, in service
    task.service()
  File "/home/gary/launchpad/lp-sourcedeps/eggs/zope.server-3.6.1-py2.5.egg/zope/server/http/httptask.py", line 71, in service
    self.channel.server.executeRequest(self)
  File "/home/gary/launchpad/lp-sourcedeps/eggs/zc.zservertracelog-1.1.5-py2.5.egg/zc/zservertracelog/tracelog.py", line 114, in executeRequest
    response = self.application(env, start_response)
  File "/home/gary/launchpad/lp-sourcedeps/eggs/zope.app.wsgi-3.6.0-py2.5.egg/zope/app/wsgi/__init__.py", line 58, in __call__
    request = publish(request, handle_errors=handle_errors)
  File "/home/gary/launchpad/lp-sourcedeps/eggs/zope.publisher-3.10.0-py2.5.egg/zope/publisher/publish.py", line 142, in publish
    publication.beforeTraversal(request)
  File "/home/gary/launchpad/lp-branches/devel/lib/canonical/launchpad/webapp/publication.py", line 167, in beforeTraversal
    transaction.begin()

The transaction.begin method performs an abort if a previous transaction exists, as you can see in transaction/_manager.py.

If I understand correctly, then, we are already doing what you are suggesting, Jeroen. Could you confirm or deny?

On the bright side, if someone can identify what *does* need to happen, this point in beforeTraversal would probably be a reasonable place to do it.