Activity log for bug #574399

Date Who What changed Old value New value Message
2010-05-03 11:51:32 Anthony Lenton bug added bug
2010-05-06 19:14:51 Anthony Lenton branch linked lp:~elachuni/wsgi-oops/dont-iterate-weakkeydicts
2010-05-06 19:34:43 Anthony Lenton bug watch added http://bugs.python.org/issue839159
2010-05-07 11:20:44 Anthony Lenton summary wsgi-oops still isn't thread-safe Iterating over a WeakKeyDictionary isn't thread-safe
2010-05-07 11:20:54 Anthony Lenton description Working with the latest wsgi-oops, we sometimes get the following Traceback (most recent call last): File "/srv/login.staging.ubuntu.com/staging/framework/django.wsgi", line 46, in application return oops(environ, start_response) File "/usr/lib/python2.5/site-packages/canonical/oops/wsgi.py", line 70, in __call__ response_trapper = ResponseTrapper(self.serial, environ, start_response) File "/usr/lib/python2.5/site-packages/canonical/oops/wsgi.py", line 88, in __init__ environ['OOPSID'] = self.oops.assign_id() File "/usr/lib/python2.5/site-packages/canonical/oops/oops.py", line 66, in assign_id self.id = self._oops_id_factory() File "/usr/lib/python2.5/site-packages/canonical/oops/serializer.py", line 171, in get_next_oops_id day, sequence = self.get_next_sequence() File "/usr/lib/python2.5/site-packages/canonical/oops/serializer.py", line 159, in get_next_sequence serializer in self._serializers[self._key]) File "/usr/lib/python2.5/site-packages/canonical/oops/serializer.py", line 158, in <genexpr> sequence = max(serializer.get_initial_sequence() for File "/usr/lib/python2.5/weakref.py", line 303, in iterkeys for wr in self.data.iterkeys(): RuntimeError: dictionary changed size during iteration You usually see this error pop up a couple of time during load tests. Working with the latest wsgi-oops, we sometimes get the following Traceback (most recent call last):   File "/srv/login.staging.ubuntu.com/staging/framework/django.wsgi", line 46, in application     return oops(environ, start_response)   File "/usr/lib/python2.5/site-packages/canonical/oops/wsgi.py", line 70, in __call__     response_trapper = ResponseTrapper(self.serial, environ, start_response)   File "/usr/lib/python2.5/site-packages/canonical/oops/wsgi.py", line 88, in __init__     environ['OOPSID'] = self.oops.assign_id()   File "/usr/lib/python2.5/site-packages/canonical/oops/oops.py", line 66, in assign_id     self.id = self._oops_id_factory()   File "/usr/lib/python2.5/site-packages/canonical/oops/serializer.py", line 171, in get_next_oops_id     day, sequence = self.get_next_sequence()   File "/usr/lib/python2.5/site-packages/canonical/oops/serializer.py", line 159, in get_next_sequence     serializer in self._serializers[self._key])   File "/usr/lib/python2.5/site-packages/canonical/oops/serializer.py", line 158, in <genexpr>     sequence = max(serializer.get_initial_sequence() for   File "/usr/lib/python2.5/weakref.py", line 303, in iterkeys     for wr in self.data.iterkeys(): RuntimeError: dictionary changed size during iteration You usually see this error pop up a couple of times during load tests.
2010-05-07 11:21:03 Anthony Lenton wsgi-oops: status New In Progress
2010-05-07 11:21:25 Anthony Lenton wsgi-oops: assignee Anthony Lenton (elachuni)
2010-05-13 13:28:53 Anthony Lenton wsgi-oops: status In Progress Fix Committed
2010-05-28 15:47:53 Tom Haddon tags canonical-losa-isd