[ZODB-Dev]
data loss bug with mounted storages, cut'n'paste and pack
Chris Withers
chris at simplistix.co.uk
Tue Feb 12 13:35:45 EST 2008
Hi All,
I believe I've bottomed out the bug at the centre of my POSKeyError
report this morning and it's a real nasty. It's pretty convoluted but
I'm fairly sure it's a bug.
Imagine the following zope.conf setup:
<zodb_db main>
<filestorage>
path $INSTANCE/var/UnPacked.fs
</filestorage>
mount-point /
</zodb_db>
<zodb_db packed>
<filestorage>
path $INSTANCE/var/Packed.fs
</filestorage>
mount-point /packed
</zodb_db>
Now, create a folder 'test' in /packed and then cut and paste it in the
ZMI to /unpacked (a folder in the unpacked storage).
Everything appears fine and it looks like 'test' now looks like it's
happilly living in /unpacked.
Okay, now the problem: pack the Packed.fs storage.
Now, if you try to go to /unpacked in the management interface, with
Zope 2.10.2, you'll get a a POSKeyError.
My guess is that the 'test' folder never really gets moved to the
UnPacked.fs storage, it's just a reference that gets created to the
object in the Packed.fs storage.
However, the packing code doesn't apepar to take cross-db references
into account and so lets the 'test' folder be packed away, causing the
POSKeyError :-(
Ideas as to how to prune the resulting POSKeyError greatfully received.
cheers,
Chris
PS: It appears that the fsrefs.py that ships with (at least) Zope 2.9.3
doesn't really give meaningful output :-/
--
Simplistix - Content Management, Zope & Python Consulting
- http://www.simplistix.co.uk
More information about the ZODB-Dev
mailing list