[Zope-Checkins] SVN: Zope/trunk/ - Collector #1655: fixed severe memory leak in TemporaryStorage

Andreas Jung andreas at andreas-jung.com
Sat Jan 8 03:23:39 EST 2005


Log message for revision 28771:
  
        - Collector #1655: fixed severe memory leak in TemporaryStorage
  
  

Changed:
  U   Zope/trunk/doc/CHANGES.txt
  U   Zope/trunk/lib/python/tempstorage/TemporaryStorage.py

-=-
Modified: Zope/trunk/doc/CHANGES.txt
===================================================================
--- Zope/trunk/doc/CHANGES.txt	2005-01-07 21:23:44 UTC (rev 28770)
+++ Zope/trunk/doc/CHANGES.txt	2005-01-08 08:23:39 UTC (rev 28771)
@@ -51,6 +51,8 @@
 
     Bugs fixed
 
+      - Collector #1655: fixed severe memory leak in TemporaryStorage
+
       - Collector #1407: fixed XML escaping problem introduced in 2.7.4 b1
 
       - Collector #1151: HTTP compression was broken on error pages

Modified: Zope/trunk/lib/python/tempstorage/TemporaryStorage.py
===================================================================
--- Zope/trunk/lib/python/tempstorage/TemporaryStorage.py	2005-01-07 21:23:44 UTC (rev 28770)
+++ Zope/trunk/lib/python/tempstorage/TemporaryStorage.py	2005-01-08 08:23:39 UTC (rev 28771)
@@ -271,7 +271,9 @@
         while roids:
             roid = roids.pop(0)
             # decrement refcnt:
-            rc=referenceCount_get(roid, 0)
+            # DM 2005-01-07: decrement *before* you make the test!
+            # rc=referenceCount_get(roid, 0)
+            rc=referenceCount_get(roid, 0) - 1
             if rc==0:
                 self._takeOutGarbage(roid)
             elif rc < 0:
@@ -280,7 +282,9 @@
                     (ReferenceCountError.__doc__,`roid`,rc)
                     )
             else:
-                referenceCount[roid] = rc - 1
+                # DM 2005-01-07: decremented *before* the test! see above
+                #referenceCount[roid] = rc - 1
+                referenceCount[roid] = rc
         try: del self._oreferences[oid]
         except: pass
 



More information about the Zope-Checkins mailing list