[Zope-dev] zodb session errors

Miles Waller miles at jamkit.com
Thu Nov 16 10:55:05 EST 2006


Hi,

We have a site that we've recently upgraded from 2.7.6 to 2.8.8 which 
has started exhibiting higher-than-average session errors.  The site 
consists of 2 zeo clients on 2 separate machines, with a shared session 
tempstorage mounted via the zeo server.

I expect some errors with sessions as a matter of course, but was trying 
to make the user experience a little less 'severe'.

Traceback (innermost last):

     * Module ZPublisher.Publish, line 114, in publish
     <snip template-rendering related traceback>
     * Module DocumentTemplate.DT_Util, line 197, in eval
       __traceback_info__: portal_basket
     * Module <string>, line 1, in <expression>
     * Module Products.WFPlugins.ShopTool.BasketTool, line 74, in 
oneLineDetails
     * Module Products.WFPlugins.ShopTool.BasketTool, line 54, in getBasket

line 54 reads:
     sess = self.session_data_manager.getSessionData(create=create)

     * Module Products.Sessions.SessionDataManager, line 93, in 
getSessionData
     * Module Products.Sessions.SessionDataManager, line 180, in 
_getSessionDataObject
     * Module Products.Transience.Transience, line 846, in new_or_existing
     * Module Products.Transience.Transience, line 449, in __setitem__

KeyError: 1163679740

I don't understand is what's happening here (and in turn what to do 
about it).  It looks as if the session machinery detects there is not 
any sessiondata set up for this particular browser, goes to set one up 
and then can't find the current timeslice to put the new sessiondata into.

Does this mean that the timeslice has changed in-between working it out 
and assigning the sessiondata to it?  Or that the timeslice has been 
garbage-collected in-between?  Also, can the problem be solved (without 
side-effects!) by changing the period to match the timeout time - i.e. 
so it can always find the current timeslice?

Thanks for any wisdom!

Miles



More information about the Zope-Dev mailing list