[ZCM] [ZC] 875/ 3 Comment "FileStorage packing bug: backpointer not resolved"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin@zope.org
Thu, 10 Apr 2003 05:12:02 -0400


Issue #875 Update (Comment) "FileStorage packing bug: backpointer not resolved"
 Status Pending, Zope/bug critical
To followup, visit:
  http://collector.zope.org/Zope/875

==============================================================
= Comment - Entry #3 by d.maurer on Apr 10, 2003 5:11 am


Uploaded:  "testFileStorageUndoPack.py"
 - http://collector.zope.org/Zope/875/testFileStorageUndoPack.py/view
Unittests attached reproducing the bug.
The tests assumes to be located in "ZODB/tests".

The error occurs when an "Undo" record is copied
during pack's copy phase (rather than the packing phase).
________________________________________
= Comment - Entry #2 by mjablonski on Apr 9, 2003 8:55 am

I've had the same "object-were-mystical-gone-after-packing"-problem two times a few weeks ago with 2.6.1. I thought it was a ZEO-Syncing-Issue, but it seems that it is problem of the ZODB-packing.
________________________________________
= Request - Entry #1 by d.maurer on Apr 9, 2003 8:06 am

ATTENTION: data loss!

We lost an object (say "O") during packing.

Events: "delete O", "undo 'delete O'", pack
After the "pack", "O" is no longer accessible, it is lost.

Analysis of the FileStorage for "O"s parent record:
Before packing
                pos             serial                  prev                            plen
undo            634808031L     '\x03K\xa5\xe4\xcaLYw'   '\x00\x00\x00\x00%L\xeb\xa2'    0    
delete          625798050L     "\x03K\xa5\xc7\xb0';f"   '\x00\x00\x00\x00\x01F\xcd)'    168      
backpointer     21417257L      '\x03G\xd3)\x98\xc9\x043' 0                              254

After packing
                pos             serial                  prev                            plen
undo            437746018L      '\x03K\xa5\xe4\xcaLYw'  '\x00\x00\x00\x00\x19\x8d\xfe%' 0    
delete          428736037L
backpointer     428736037L      "\x03K\xa5\xc7\xb0';f"  '\x00\x00\x00\x00\x01<)\xdd'    168

As we see, the backpointer was not resolved
during packing and after packing, it points
to the "deleted" state.

I will try to reproduce this error in
a small test case and report back.

==============================================================