On 18/05/2004, at 10:03 PM, Andrea Patuzzo wrote:

Hi, dear developers:

We are now randomly getting this kind of error:

File "/usr/local/Zope270CVS/lib/python/Products/Transience/Transience.py",
line 341, in __setitem__
current_bucket = self._data[current_ts]
KeyError: 1084872640

This one was with the latest publish.py / startup.py patch and the new
Transience.py implementation, on a yesterday's Zope-2_7-branch checkout.
New Zope instance with FileStorage does not solve the problem.
Same happens with the patches applied to the official Zope-2.7.0 release.

Note: once the error happens, zope has to be restarted to function again.
Before applying patches we were getting "get" errors (instead of
"__setitem__") and we just had to close browser to get back to work.
Here we have to restart Zope (with TemporaryStorage) or delete Sessions.fs
and restart (with FileStorage).

My guess at the moment is that somewhere a ConflictError is being swallowed. There are a few things that can be responsible for this:

- Use of hasattr on Persistent objects.

- try/except blocks that don't raise ConflictErrors.

From your trace that looks like a Plone site. A very quick glance through Plone and its friends indicates that there may be some chance of either of the above causing some problems. Although Plone 2.0.1 includes the following fix:

- Fixed bare 'except:' statements in Plone so we don't swallow
ZODB ConflictErrors. Mostly by adding 'except ConflictError: raise'.

Someone please shoot me down and claim that Plone and friends all do the right thing. ;-)


Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to