[ZODB-Dev] Low-level reference finding, tracking, deleting?
Jeff Shell
jeff at bottlerocket.net
Sat Apr 17 11:02:43 EDT 2010
On Apr 17, 2010, at 7:43 AM, Laurence Rowe <l at lrowe.co.uk> wrote:
> On 17 April 2010 05:27, Jeff Shell <jeff at 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
More information about the ZODB-Dev
mailing list