[ZODB-Dev] George Bailey'd objects cause failure in FileStorage._loadBack

Magnus Lycka magnus@thinkware.se
Thu, 31 Oct 2002 00:55:17 +0100


Ok, the variable 'b' just got 'uncreated', or George Bailey'd
as Barry called it. (BTW, is that an established term, or
something Barry invented now? I always had a soft spot for
old James Stewart movies... :)

As soon as I do an attribute access, I get the error below.
b._p_deactivate() is just silent though.

(This is ZODB3 from CVS Sept 20.)

 >>> b
<A instance at 0193C720>
 >>> b.b
Traceback (most recent call last):
   File "<interactive input>", line 1, in ?
   File "G:\Python22\Lib\site-packages\ZODB\Connection.py", line 522, in 
setstate
     p, serial = self._storage.load(oid, self._version)
   File "G:\Python22\Lib\site-packages\ZODB\FileStorage.py", line 619, in load
     return self._load(oid, version, self._index, self._file)
   File "G:\Python22\Lib\site-packages\ZODB\FileStorage.py", line 605, in _load
     return _loadBack(file, oid, pnv)
   File "G:\Python22\Lib\site-packages\ZODB\FileStorage.py", line 2098, in 
_loadBack
     doid, serial, prev, tloc, vlen, plen = unpack(">8s8s8s8sH8s", h)
error: unpack str size does not match format
 >>>

BTW, how does ZOPE behave on undo? How does it make sure
there are no G.B'd objects? Does it somehow reboot, or
does it manually kill off all problematic objects?


-- 
Magnus Lycka, Thinkware AB
Alvans vag 99, SE-907 50 UMEA, SWEDEN
phone: int+46 70 582 80 65, fax: int+46 70 612 80 65
http://www.thinkware.se/  mailto:magnus@thinkware.se