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@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 )


_______________________________________________
Zope-Dev maillist  -  Zope-Dev@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 )

Reply via email to