On Apr 17, 2010, at 7:43 AM, Laurence Rowe <l...@lrowe.co.uk> wrote:

> On 17 April 2010 05:27, Jeff Shell <j...@bottlerocket.net> wrote:
>> We encountered a problem during an export/import in a Zope 3 based 
>> application that resulted in something not being importable. This is from 
>> our very first Zope 3 based application, and I stumbled across some very old 
>> adapter/utility registrations that I thought I had cleared out. There are 
>> references to `zope.interface.adapter.Null` which haven't been around for 
>> years. This is in an old `LocalAdapterRegistry` which, again, I thought I 
>> had removed along time ago. These objects and what they reference are not 
>> part of our normal object graph, and I was surprised to see them.
>> Given an oid, how can I trace what references that object/oid? There is 
>> something in our normal object hierarchy retaining a reference, but I don't 
>> know how to find it, and imagine that trying to investigate/load the objects 
>> from the ZODB level will help me find the culprit.
> I describe how to do this in an article here:
> http://plone.org/documentation/kb/debug-zodb-bloat

Oh yeah! I remember looking at that article a few months back. Thanks for the 
reminder. Looking at our fsdump results, this database seems to have quite a 
bit of old items that should have been packed / garbage collected a long time 
ago. This could help me find out why they're not going away.

> Since then, Jim has written zc.zodbgc in which the
> "multi-zodb-check-refs script will optionally produce a database
> of reverse references".
> http://www.mail-archive.com/zodb-dev@zope.org/msg04389.html

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to