[Zodb-checkins] SVN: ZODB/branches/3.9/src/ Bug Fixed

Jim Fulton jim at zope.com
Tue Sep 28 16:07:58 EDT 2010


Log message for revision 117031:
  Bug Fixed
  
  - Changes in way that garbage collection treats dictionaries in Python
    2.7 broke the object/connection cache implementation.
    (https://bugs.launchpad.net/zodb/+bug/641481)
  

Changed:
  U   ZODB/branches/3.9/src/CHANGES.txt
  U   ZODB/branches/3.9/src/persistent/cPickleCache.c

-=-
Modified: ZODB/branches/3.9/src/CHANGES.txt
===================================================================
--- ZODB/branches/3.9/src/CHANGES.txt	2010-09-28 20:03:45 UTC (rev 117030)
+++ ZODB/branches/3.9/src/CHANGES.txt	2010-09-28 20:07:58 UTC (rev 117031)
@@ -2,6 +2,19 @@
  Change History
 ================
 
+3.9.7 (2010-09-28)
+==================
+
+Bugs Fixed
+----------
+
+- Changes in way that garbage collection treats dictionaries in Python
+  2.7 broke the object/connection cache implementation.
+  (https://bugs.launchpad.net/zodb/+bug/641481)
+
+  Python 2.7 wasn't officially supported, but we were releasing
+  binaries for it, so ...
+
 3.9.6 (2010-09-21)
 ==================
 

Modified: ZODB/branches/3.9/src/persistent/cPickleCache.c
===================================================================
--- ZODB/branches/3.9/src/persistent/cPickleCache.c	2010-09-28 20:03:45 UTC (rev 117030)
+++ ZODB/branches/3.9/src/persistent/cPickleCache.c	2010-09-28 20:07:58 UTC (rev 117031)
@@ -992,6 +992,7 @@
     {
       if (PyDict_SetItem(self->data, key, v) < 0)
         return -1;
+      PyObject_GC_UnTrack((void *)self->data);
       self->klass_count++;
       return 0;
     }
@@ -1017,6 +1018,7 @@
   if (PyDict_SetItem(self->data, key, v) < 0)
     return -1;
   /* the dict should have a borrowed reference */
+  PyObject_GC_UnTrack((void *)self->data);
   Py_DECREF(v);
 
   p = (cPersistentObject *)v;



More information about the Zodb-checkins mailing list