[ZCM] [ZC] 1208/ 3 Comment "Infinite loop in cPickleCache"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin at zope.org
Fri May 14 11:31:18 EDT 2004


Issue #1208 Update (Comment) "Infinite loop in cPickleCache"
 Status Accepted, Database/bug medium
To followup, visit:
  http://zope.org/Collectors/Zope/1208

==============================================================
= Comment - Entry #3 by tim_one on May 14, 2004 11:31 am

Noting that Toby Dickenson appears to be working on a fix for this, on toby_terminator_branch (in CVS, not SVN).
________________________________________
= Assign - Entry #2 by tim_one on May 14, 2004 11:19 am

 Supporters removed: jeremy

Removed Jeremy as a supporter.
________________________________________
= Request - Entry #1 by tim_one on Jan 27, 2004 2:03 pm

 Status: Pending => Accepted

 Supporters added: jeremy, tim_one

As discussed on ZODB-dev, if a persistent object has a __del__ method that refers to an attribute of self, then attempting to ghostify it can unghostify it again, and move it to the MRU end of the ring as a result.  This can provoke scan_gc_items() into an infinite loop, if the number of such resurrectors + the number of unghostifiable objects in the cache exceeds the cache target size (and minimizing sets the target size to 1, so it only takes one of these guys to provoke an infinite loop then).

We could, e.g., add a mark bit to objects, or break the scan loop after it's gone around a number of times equal to the initial number of ring entries.
==============================================================




More information about the Zope-Collector-Monitor mailing list