[Zope-dev] Re: [ZODB-Dev] Re: BTrees strangeness (was Zope 2.X BIG Session problems - blocker - our site dies - need help of experience Zope developer, please)

Tres Seaver tseaver at zope.com
Wed May 19 11:32:13 EDT 2004


Michael Dunstan wrote:
> 
> 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'.
>       [stefan]
> 
> Someone please shoot me down and claim that Plone and friends all do the 
> right thing. ;-)

We should have a 'hasattr-geddon' and remove every trace of that 
monstrosity from Zope and the CMF;  likewise a 'bareexcept-geddon' 
(there might be a few places which are smart enough to do 'except:', but 
I doubt it).

Tres.
-- 
===============================================================
Tres Seaver                                tseaver at zope.com
Zope Corporation      "Zope Dealers"       http://www.zope.com




More information about the Zope-Dev mailing list