ZODB v3.9.6 Release Notes

Release Date: 2010-09-21 // over 13 years ago
  • 🐛 Bugs Fixed

    (Thanks to Christian Zagrodnick for chasing this down.)

    • If a ZEO client process was restarted while invalidating a ZEO cache entry, the cache could be left in a stage when there is data marked current that should be invalidated, leading to persistent conflict errors.

    • Corrupted or invalid cache files prevented ZEO clients from starting. Now, bad cache files are moved aside.

    • Invalidations of object records in ZEO caches, where the invalidation transaction ids matched the cached transaction ids should have been ignored.

    • Shutting down a process while committing a transaction or processing invalidations from the server could cause ZEO persistent client caches to have invalid data. This, in turn caused stale data to remain in the cache until it was updated.

    • Conflict errors didn't invalidate ZEO cache entries.

    • When objects were added in savepoints and either the savepoint was rolled back (https://bugs.launchpad.net/zodb/+bug/143560) or the transaction was aborted (https://mail.zope.org/pipermail/zodb-dev/2010-June/013488.html) The objects' _p_oid and _p_jar variables weren't cleared, leading to surprizing errors.

    • Objects added in transactions that were later aborted could have _p_changed still set (https://bugs.launchpad.net/zodb/+bug/615758).

    • ZEO extension methods failed when a client reconnected to a storage. (https://bugs.launchpad.net/zodb/+bug/143344)

    • On Mac OS X, clients that connected and disconnected quickly could cause a ZEO server to stop accepting connections, due to a failure to catch errors in the initial part of the connection process.

    The failure to properly handle exceptions while accepting connections is potentially problematic on other platforms.

    Fixes: https://bugs.launchpad.net/zodb/+bug/135108

    • Passing keys or values outside the range of 32-bit ints on 64-bit platforms led to undetected overflow errors. Now these cases cause Type errors to be raised.

    https://bugs.launchpad.net/zodb/+bug/143237

    • BTree sets and tree sets didn't correctly check values passed to update or to constructors, causing Python to exit under certain circumstances.

    • ✅ The verbose mode of the fstest was broken. (https://bugs.launchpad.net/zodb/+bug/475996)