[Zope-Annce] ZODB 3.1.2 final released

Jeremy Hylton jeremy@zope.com
10 Jul 2003 14:37:37 -0400

I'm pleased to announce the final release of ZODB 3.1.2.  This release
provides a large number of bug fixes, including several critical fixes
that can lead to failures and data loss in race circumstances.  The code
in this release corresponds to the ZODB code in Zope 2.6.2.

The primary changes between ZODB 3.1.1 and ZODB 3.1.2 are:

The database now handles a transaction's invalidations atomically.  In
earlier versions of ZODB, a partial set of invalidations could be
applied, presenting applications with an inconsistent view of the

We fixed several bugs in ZEO's handling of invalidations messages. 
These bugs could lead to data loss or data corruption in some
circumstances.  Some of the ZEO bugs were related to the atomic
invalidations change, but not all.  

Several of the ZEO bugs are probably also present in ZEO version 1.  I
would recommend that ZEO 1 users upgrade to ZEO 2 as soon as possible,
as we are no longer maintaing ZEO 1 and have not fixed the bugs there.

There is a new implementation of FileStorage pack that fixes several
problems.  The old version of pack could cause data loss in the presence
of undo.

There were a few small BTrees fixes.  In one case, a segfault could
occur if a BTree was modified by deletion while it was being iterated

There were a few small changes between ZODB 3.1.2 beta 2 and the final
release.  I've included the relevant entries from the news file below.


What's new in ZODB3 3.1.2 final?

Fixed bug in FileStorage pack that caused it to fail if it encountered
an old undo record (status "u").

Fixed several bugs in FileStorage pack that could cause OverflowErrors
for storages > 2 GB.

Fixed memory leak in TimeStamp.laterThan() that only occurred when it
had to create a new TimeStamp.

Fixed two BTree bugs that were fixed on the head a while ago:

   - bug in fsBTree that would cause byValue searches to end early.
     (fsBTrees are never used this way, but it was still a bug.)

   -  bug that lead to segfault if BTree was mutated via deletion
      while it was being iterated over.