
I'm pleased to announce the release of ZODB 3.2.6 beta 1. You can download a source tarball or Windows installer from: http://zope.org/Products/ZODB3.2 There are several critical bugfixes in this release, addressing rare problems in two major areas: - Thread and asyncore races while ZEO is attempting to make a connection, leading to connection failure and/or missed messages. - Rare cases in which FileStorage could reuse oids already assigned, leading to distinct objects with the same oid (object identifier). The primary cause was that FileStorage.restore() didn't update the storage's idea of the largest oid in use, regardless of how large an oid was passed to it. The first stage of ZRS recovery, and copyTransactionsFrom(), both rely on the .restore() method, and so both could create database copies that believed no oids had yet been assigned. A secondary cause was that a FileStorage's .index file contains a "maximum oid in the index" record, and the value in this record was believed even when it was incorrect. The primary cause was repaired by simple changes to .restore() and .store(), so that .index files with a bad max-oid record are no longer created. But there may be such databases already in existence, so the secondary cause was addressed by larger changes to ignore the max-oid record in the .index file, extracting the largest oid directly from the index instead (this is basically a BTree mapping oids to file offsets, so finding the largest key is very efficient; the separate max-oid record is really a leftover from earlier times, before a BTree was used here). Note that although ZODB 3.2.6 ignores an .index file's max-oid record, it still writes a max-oid record when it saves an .index file. This is so older ZODB releases can continue to read .index files produced by ZODB 3.2.6. See the news file for details: http://zope.org/Products/ZODB3.2/NEWS ZODB 3.2.6 can be used with Zopes in the 2.7 line, at or after Zope 2.7.3. Note that ZODB 3.2.6 does not support development on Zope 2.8, Zope X3 or Zope 3 (they require the ZODB 3.3 line).
participants (1)
-
Tim Peters