[ZODB-Dev] Estrange behaviour with BTreeFolder2
Santi Camps
scamps at earcon.com
Wed Apr 1 12:10:41 EDT 2009
>> objects = gc.get_objects()
>> objects2 = [obj for obj in objects if getattr(obj, '__class__', None)]
>
> (I'm a bit surprised that you get objects without a __class__ attribute
> -- could you elaborate about those? Old-style class instances?
> Extension types?)
>
No, it's just a copy & paste of a old memory debugging thread, sorry
>> emails = [obj for obj in objects2 if 'mail' in obj.__class__.__name__.lower()]
>
> How many different classes are there with 'mail' in the (lowercased)
> class name?
>
> Do they all inherit from Persistent?
>
Just one class, it inherit from Persistent, yes. Following other
classes results in the same problem
>> Following gc references, I see this mails are referenced from a
>> OOBucket, that is referenced by another OOBucket, ...
>
> I assume those mails are values rather than keys.
>
Yes, the keys are strings with the id's of the objects
>
> Your description would make perfect sense to me if your mail classes
> weren't subclasses of Persistent (and the fix would be: make them
> subclass Persistent).
>
No, all them inherit from CMF PortalContent, and this from Persistent,
so there is not the problem.
I'm using RelStorage, but this shouldn't affect. I will try the same
tests in a FileStorage to be sure
Thanks for your help
--
Santi Camps (Earcon S.L.)
http://www.earcon.com
http://www.kmkey.com
More information about the ZODB-Dev
mailing list