[Zope-dev] Major 2.0.0B1 database problems

Robert Leftwich robert@leftfieldcorp.com
Tue, 27 Jul 1999 21:24:54 +1000


After converting a database from ZODB2 to ZODB3 format using bbb.py I
have noticed that the pack no longer clears the list of undo-able
transactions. The data.fs file size changes, but the list of
transactions remains unchanged. If you attempt to actually undo one of
these transactions, the database becomes corrupt and Zope faults on
startup with the following traceback (this was after attempting to undo
renaming a folder) :

Traceback (innermost last):
  File "C:\Program Files\Zope2\z2.py", line 369, in ?
    exec "import "+MODULE in {}
  File "<string>", line 1, in ?
  File "C:\PROGRA~1\Zope2\lib\python\Zope\__init__.py", line 46, in ?
    OFS.Application.initialize(c)
  File "C:\PROGRA~1\Zope2\lib\python\OFS\Application.py", line 324, in
initializ
e
    app._setObject('Control_Panel', cpl)
  File "C:\PROGRA~1\Zope2\lib\python\ZODB\Connection.py", line 384, in
setstate
    p, serial = self._storage.load(oid, self._version)
  File "C:\PROGRA~1\Zope2\lib\python\ZODB\FileStorage.py", line 445, in
load
    try: return self._load(oid, version, self._index, self._file)
  File "C:\PROGRA~1\Zope2\lib\python\ZODB\FileStorage.py", line 421, in
_load
    pos=_index[oid]
KeyError:        ?

Attempts to actually use the database after packing without undoing
anything result in a conflict exception on pages that update items in
the database.

Similar instability occurs if you import a ZODB2 database that was
packed, in fact all the previous transactions are shown in the undo list
in the ZODB 3 version even though they were not visible in the 1.10.3
list !

This is on WinNT, running the z2.py (non-service) version of Zope 2.0B1,
using a database from 1.10.3.

Has anyone else seen similar problems ?

Robert Leftwich