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!


Zope-Dev maillist  -  Zope-Dev@zope.org
**  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