[Zodb-checkins] CVS: ZODB3 - NEWS.txt:1.32

Jeremy Hylton jeremy at zope.com
Fri May 30 16:59:15 EDT 2003


Update of /cvs-repository/ZODB3
In directory cvs.zope.org:/tmp/cvs-serv31213

Modified Files:
	NEWS.txt 
Log Message:
Update the NEWS file.


=== ZODB3/NEWS.txt 1.31 => 1.32 ===
--- ZODB3/NEWS.txt:1.31	Tue Feb 11 13:25:24 2003
+++ ZODB3/NEWS.txt	Fri May 30 15:59:15 2003
@@ -1,9 +1,64 @@
-What's new in ZODB3 3.2 alpha 2
-===============================
-Release date: XX-Jan-2003
+What's new in ZODB3 3.2 beta 1
+==============================
+Release date: 30-May-2003
+
+ZODB
+----
+
+Invalidations are now processed atomically.  Each transaction will see
+all the changes caused by an earlier transaction or none of them.
+Before this patch, it was possible for a transaction to see invalid
+data because it saw only a subset of the invalidations.  This is the
+most likely cause of reported BTrees corruption, where keys were
+stored in the wrong bucket.  When a BTree bucket splits, the bucket
+and the bucket's parent are both modified.  If a transaction sees the
+invalidation for the bucket but not the parent, the BTree in memory
+will be internally inconsistent and keys can be put in the wrong
+bucket.  The atomic invalidation fix prevents this problem.
+
+A number of minor reference count fixes in the object cache were
+fixed.  That's the cPickleCache.c file.
+
+It was possible for a transaction that failed in tpc_finish() to lose
+the traceback that caused the failure.  The transaction code was fixed
+to report the original error as well as any errors that occur while
+trying to recover from the original error.
+
+The "other" argument to copyTransactionsFrom() only needs to have an
+.iterator() method.  For convenience, change FileStorage's and
+BDBFullStorage's iterator to have this method, which just returns
+self.
+
+Mount points are now visible from mounted objects.
+
+Fixed memory leak involving database connections and caches.  When a
+connection or database was closed, the cache and database leaked,
+because of a circular reference involving the cache.  Fixed the cache
+to explicitly clear out its contents when its connection is closed.
+
+The ZODB cache has fewer methods.  It used to expose methods that
+could mutate the dictionary, which allowed users to violate internal
+invariants. 
+
+ZConfig
+-------
+
+It is now possible to configure ZODB databases and storages and ZEO
+servers using ZConfig.
+
+ZEO & zdaemon
+-------------
+
+ZEO now supports authenticated client connections.  The default
+authentication protocol uses a hash-based challenge-response protocol
+to prove identity and establish a session key for message
+authentication.  The architecture is pluggable to allow third-parties
+to developer better authentication protocols.
+
+There is a new HOWTO for running a ZEO server.  The draft in this
+release is incomplete, but provides more guidance than previous
+releases.  See the file Doc/ZEO/howto.txt.
 
-ZEO/zdaemon
------------
 
 The ZEO storage server's transaction timeout feature was refactored
 and made slightly more rebust.
@@ -19,15 +74,55 @@
 conflict with the zdaemon package.)  Together with the new
 mkzeoinst.py script, this makes controlling a ZEO server a breeze.
 
-ZODB
-----
+A ZEO client will not read from its cache during cache verification.
+This fix was necessary to prevent the client from reading inconsistent
+data.
 
-The "other" argument to copyTransactionsFrom() only needs to have an
-.iterator() method.  For convenience, change FileStorage's and
-BDBFullStorage's iterator to have this method, which just returns
-self.
+The isReadOnly() method of a ZEO client was fixed to return the false
+when the client is connected to a read-only fallback server.
 
-Mount points are now visible from mounted objects.
+The sync() method of ClientStorage and the pending() method of a zrpc
+connection now do both input and output.
+
+The short_repr() function used to generate log messages was fixed so
+that it does not blow up creating a repr of very long tuples.
+
+Storages
+--------
+
+FileStorage has a new pack() implementation that fixes several
+reported problems that could lead to data loss.
+
+Two small bugs were fixed in DemoStorage.  undoLog() did not handle
+its arguments correctly and pack() could accidentally delete objects
+created in versions.
+
+Fixed trivial bug in fsrecover that prevented it from working at all.
+
+FileStorage will use fsync() on Windows starting with Python 2.2.3.
+
+FileStorage's commit version was fixed.  It used to stop after the
+first object, leaving all the other objects in the version.
+
+BTrees
+------
+
+Trying to store an object of a non-integer type into an IIBTree
+or OIBTree could leave the bucket in a variety of insane states.  For
+example, trying
+
+    b[obj] = "I'm a string, not an integer"
+
+where b is an OIBTree.  This manifested as a refcount leak in the test
+suite, but could have been much worse (most likely in real life is that
+a seemingly arbitrary existing key would "go missing").
+
+When deleting the first child of a BTree node with more than one
+child, a reference to the second child leaked.  This could cause
+the entire bucket chain to leak (not be collected as garbage
+despite not being referenced anymore).
+
+Other minor BTree leak scenarios were also fixed.
 
 Tools
 -----
@@ -37,6 +132,10 @@
 
 New tool repozo.py (originally by Anthony Baxter) for performing
 incremental backups of Data.fs files.
+
+The fsrecover.py script now does a better job of recovering from
+errors the occur in the middle of a transaction record.  Fixed several
+bugs that caused partial or total failures in earlier versions.
 
 
 What's new in ZODB3 3.2 alpha 1




More information about the Zodb-checkins mailing list