[ZODB-Dev] [ zodb-Bugs-597158 ] POSKeyError out of the blue

noreply@sourceforge.net noreply@sourceforge.net
Wed, 06 Nov 2002 03:32:21 -0800


Bugs item #597158, was opened at 2002-08-19 13:54
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=115628&aid=597158&group_id=15628

Category: None
Group: None
>Status: Closed
>Resolution: Invalid
Priority: 5
Submitted By: Chris Withers (fresh)
Assigned to: Nobody/Anonymous (nobody)
Summary: POSKeyError out of the blue

Initial Comment:
Just started getting loads of these out of the blue:

------
2002-08-19T13:22:38 ERROR(200) ZODB Couldn't load state
for '\x00\x00\x00\x00\x00\x05tr'

Traceback (innermost last):
  File
C:\Zope\255BA1~1.1_B\lib\python\ZODB\Connection.py,
line 447, in setstate
  File
C:\zope\2-5-1_base\lib\python\ZEO\ClientStorage.py,
line 294, in load
    (Object: (x, 0000)
  File C:\zope\2-5-1_base\lib\python\ZEO\zrpc.py, line
168, in __call__
POSKeyError: 0000000000057472

...the error is mirrored in the storage servers log file.

Restarting the strorage server and the ZEO client
appears to have solved the problem.

Any ideas?

cheers,

Chris






----------------------------------------------------------------------

>Comment By: Chris Withers (fresh)
Date: 2002-11-06 11:32

Message:
Logged In: YES 
user_id=24723

Chalk this one down to BTrees bugs fixed in Zope 2.6.0

----------------------------------------------------------------------

Comment By: Jeremy Hylton (jhylton)
Date: 2002-08-20 18:52

Message:
Logged In: YES 
user_id=31392

I don't have any ideas off the top of my head.  It is likely
that the POSKeyError was raised by the underlying storage
(FileStorage, I assume) and that ZEO didn't play a role. 
It's hard to think of a way for ZEO to raise this error on
its own, as opposed to just propagating it.

Can you check if that OID is still loadable?  There are two
possibilities.  1) There was a problem loading it that got
fixed by the restart.  2) The object doesn't exist and the
restart removed a stale reference to it.

You'd try something like:

from ZODB.utils import p64
oid = p64(57473)
from ZEO.ClientStorage import ClientStorage
cs = ClientStorage(...)
cs.load(oid, '')


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=115628&aid=597158&group_id=15628