Collector 1309: ZODB.DB.DB.cacheExtremeDetail reports wrong reference count
The refcount reported for a ghost was one too small, because the code for ghosts and non-ghosts was the same, and presumably "it's a feature" that the code for non-ghosts deliberately lies about the true Python refcount, in order (guessing here) to report what the count would have been if the cPickleCache didn't exist. But while the cPickleCache holds on to a real reference to non-ghost objects, it does not hold a real reference to ghost objects, so subtracting "an extra" count for all objects made it appear that non-referenced ghosts exist in the cache (which doesn't actually happen). What a tangled web we weave ...
Showing
Please register or sign in to comment