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

Jens Vagelpohl jens@zope.com
Wed, 29 Jan 2003 17:54:02 -0500


the global cache itself is per-thread (it is a _v_ attribute).

jens


On Wednesday, Jan 29, 2003, at 14:54 US/Eastern, Dieter Maurer wrote:

> 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
>
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )