Tim peters 2012-05-02 14:17:07
I’m pleased to announce the release of ZODB 3.2.4c1. This corresponds to
the ZODB (and ZEO) that we intend to ship with Zope 2.7.3.
You can download a source tarball or Windows installer from:
3.2.4c1 incorporates several small bugfixes, and one crucial new behavior:
it’s incorrect to attempt to close a connection when objects from that
connection are still in a modified state. When an application modifies, or
creates, a persistent object, it should always abort() or commit() the
transaction before closing the connection. However, ZODB didn’t enforce
this, and applications that closed a connection with pending modifications
could get into catastrophic trouble as a result. For example, it was easy
to create dangling references in the database this way (references to
objects that don’t exist, resulting in POSKeyError upon an attempt to load
them). ZODB 3.2.4c1 raises the new ConnectionStateError if an attempt to
cloase a connection with pending modifications is made.
See the news file for details:
The intent is that 3.2.4c1 will be released again as 3.2.4 (final) shortly
before the Zope 2.7.3 release.
Note that ZODB 3.2.4c1 does not support Zope 2.7.2, because the Zope 2.7.2
publishing subsystem is an example of application code that didn’t always
finish a transaction before closing connections. ZODB 3.2.4c1 can be used
with the current Zope Zope-2_7-branch branch.
Note that ZODB 3.2.4c1 does not support Zope X3 (Zope 3 requires ZODB 3.3 —
as will Zope 2.8).