Interface Provides Declaration wearkrefs broken when added to ZODB
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zope 3 |
Won't Fix
|
Medium
|
Unassigned | ||
3.2 |
Won't Fix
|
Undecided
|
Unassigned | ||
3.3 |
Won't Fix
|
Undecided
|
Unassigned | ||
3.4 |
Won't Fix
|
Medium
|
Unassigned | ||
zope.interface |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
An instance of a class that subclasses persistent.
declared that it zope.interface.
zope.interface.
is added to the ZODB and committed. Then if the persistent instance is
deleted from the ZODB, the transaction is committed, and the ZODB is
packed, and gc.collect is run, the ProvidesClass instance in the
InterfaceClass.
however, remain if the persistent interface was never added to the
ZODB.
I'm not sure if this represents a potential memory leak or not. What
confuses me is that it all behaves properly unless the persistent
instance is added to the ZODB. Furthermore, the
PersistentInter
dependents attribute works properly when added to the ZODB. I noted
the comment about weak referrences being added to the ZODB
optomistically in ZODB.serialize. Could that be it?
I'd be happy to investigate this further if given a little direction.
Attached is a patch to the zope.app.interface tests to expose this
bug.
Changed in zope.interface: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in zope3: | |
status: | Confirmed → Won't Fix |
tags: | added: bugday20100424 |
I think you're right. Thanks for the test case. I can't give you direct hints, but the report is valid.