[ZODB-Dev] more fun Data.fs->Berkeley DB conversion

Andrew Sydelko sydelko@csociety.purdue.edu
Mon, 17 Sep 2001 17:16:18 -0500


Well, after getting past the problem of
not having enough locks in BerkeleyDB, 
I have now run into another stumbling 
block while converting a large (and fairly
old) Data.fs to BerkeleyDB.

Traceback (most recent call last):
  File "./copy.py", line 24, in ?
    dst.copyTransactionsFrom(src)
  File "/data/www/Zope.1/src/Zope-2.4.1-src/lib/python/ZODB/BaseStorage.py", line 293, in copyTransactionsFrom
    s=self.store(oid, pre, r.data, r.version, transaction)
  File "/data/www/Zope.1/lib/python2.1/site-packages/bsddb3Storage/Full.py", line 606, in store
    raise POSException.VersionLockError(
ZODB.POSException.VersionLockError: version mismatch for object 541138 (was: 3, got: 0)

So, after reading the Full.py of BerkeleyDB
storage and deciding that maybe it shouldn't
happen... I need a way to continue processing
the Data.fs file. Should I go through and
remove version locks first? Or is there a way
to clean the Data.fs first (w/o packing) before
running the copyTransactionsFrom method.

--andy.