[Zope-dev] Session Errors (read conflicts)

Chris McDonough chrism@ZOPE.COM
18 Mar 2003 14:12:12 -0500


On Tue, 2003-03-18 at 14:01, Toby Dickenson wrote:
> On Tuesday 18 March 2003 6:12 pm, Chris McDonough wrote:
> > I'm
> > thinking that I also may just need to move the housekeeping duties to a
> > separate scheduled thread that only happens when the system is "not
> > busy" (e.g. when the asyncore poll select timeout is reached maybe) in
> > order to reduce the potential for conflicts.
> 
> Thats hard to define, when zeo is installed.

It would only make sense for shared session data if the housekeeping
thread was enabled on a single ZEO client in a cluster.  Of course this
scenario has its own configuration and management difficulties.

> >   But I'm not sure what else
> > to do, and I still don't understand what is causing the KeyErrors in the
> > storage code.  Sigh.
> 
> Ive never looked at nor used your Sessioning support, but I am interested in 
> things that can cause (POS)KeyErrors in Storages.....
> 
> This might not be a storage bug. There are several known corner cases in zodb 
> that mean semi-legitimate applications can cause KeyErrors. DirectoryStorage 
> tries to guard against them, and will raise a DanglingReferenceError rather 
> than commit a transaction that will cause a POSKeyError when read. Can the 
> problem be reproduced using DirectoryStorage? (without the "low consistency 
> connection")

That's a fine question. ;-)  John, did you see these Key Errors happen
under a storage other than TemporaryStorage (e.g. if the session data
container is in the main database)?  I will check myself as well when
possible.  Dieter also observed that this may be a behavior specific to
mounted storages, so I will need to try that as well.

- C