[Zope-dev] Re: zodb session errors

Miles Waller miles at jamkit.com
Thu Nov 16 13:38:39 EST 2006


Hi,

More info: I have a hunch that this might have been due to out-of-sync 
clocks on the two machines (turns out they were 5 minutes out).  I have 
adjusted the clocks and will check the error logs.

Specifically, I am imagining that this would cause session data created 
on one machine to be mysteriously "lost" at certain times on the other 
machine when it looks in the wrong timeslice.

I'm not sure why it wouldn't be possible to create new sessiondata as 
below though - is this explanation a possibility?

Miles

Miles Waller wrote:
> 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
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
> http://mail.zope.org/mailman/listinfo/zope )
> 



More information about the Zope-Dev mailing list