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

Tim Peters tim.one at comcast.net
Wed May 19 16:25:06 EDT 2004


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

Modified Files:
      Tag: Zope-2_7-branch
	NEWS.txt 
Log Message:
Collector #1208:  Infinite loop in cPickleCache.

This fixes it, based on an approach suggested by Toby Dickenson.
The triggering condition wasn't entirely sane, so was very rare:
a persistent object with a __del__ method that referenced an
attribute of self.

scan_gc_items():  Look at objects accessed by __setattr__ and
__del__ calls no more than once.

New test checkMinimizeTerminates():  This spawns a thread that
will in fact run forever if you don't recompile cPickleCache.c.
The test suite will keep running, but checkMinimizeTerminates
will fail, and all future calls to cacheMinimize() will be
effectively ignored (so other bad things may happen as a
result).


=== ZODB3/NEWS.txt 1.33.6.20 => 1.33.6.21 ===
--- ZODB3/NEWS.txt:1.33.6.20	Thu Feb 12 09:49:59 2004
+++ ZODB3/NEWS.txt	Wed May 19 16:24:35 2004
@@ -1,3 +1,22 @@
+What's new in ZODB3 3.2.2?
+==========================
+Release-date: DD-MMM-2004
+
+ZODB
+----
+
+Collector #1208:  Infinite loop in cPickleCache.
+If a persistent object had a __del__ method (probably not a good idea
+regardless, but we don't prevent it) that referenced an attribute of
+self, the code to deactivate objects in the cache could get into an
+infinite loop:  ghostifying the object could lead to calling its __del__
+method, the latter would load the object into cache again to
+satsify the attribute reference, the cache would again decide that
+the object should be ghostified, and so on.  The infinite loop no longer
+occurs, but note that objects of this kind still aren't sensible (they're
+effectively immortal).
+
+
 What's new in ZODB3 3.2.1?
 ==========================
 Release-date: 12-Feb-2004




More information about the Zodb-checkins mailing list