[Zope] RuntimeError: Shouldn't load state for '\x00\x00\x00\x00\x00\x006\xd1' when the connection is closed

Dieter Maurer dieter@handshake.de
Wed, 29 Jan 2003 20:54:19 +0100


Thierry Florac wrote at 2003-1-29 08:50 +0100:
 >  .... strange problem named in subject ....
 >     * Module Products.LDAPUserFolder.LDAPUser, line 138, in
 > _getSatellite
 >     * Module Products.BTreeFolder2.BTreeFolder2, line 241, in
 > objectCount
 >     * Module BTrees.Length, line 43, in __call__
 >     * Module ZODB.Connection, line 504, in setstate
 > 
 > RuntimeError: Shouldn't load state for '\x00\x00\x00\x00\x00\x006\xd1'
 > when the connection is closed
Looks like a bug in LDAPUserFolder (report this to Jens!):

  Apparently, LDAPUserFolder puts persistent objects into global
  RAM (probably to implement a cache).

  This is a recipe for desaster. Persistent objects contain
  an implicit reference to the ZODB connection.

  When the global data is accessed later by a different thread
  (with a different connection), the old connection reference is
  wrong. In your case, it seems to be closed.


Dieter