[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