[ZODB-Dev] KeyError in BTrees.check

Suresh V. suresh_vv at yahoo.com
Wed Jul 14 01:39:38 EDT 2010


Hanno Schlichting wrote:
> On Tue, Jul 13, 2010 at 11:23 AM, Suresh V. <suresh_vv at yahoo.com> wrote:
>> While trying to run manage_cleanup on my BTreeFolder2, I get a KeyError
>> from the classify function in Module BTrees.check:
>>
>> def classify(obj):
>>     return _type2kind[type(obj)]
>>
>> I see that obj is None at this point.
>>
>> Anyway I can patch the code to run around this?
> 
> This should be solved in BTreeFolder2 I guess. It shouldn't pass in
> something that is None into the lower level function.
> 
> But I thought the manage_cleanup methods where only used years ago,
> while BTree's had some internal book keeping problems. Do you still
> get BTree corruption in any recent ZODB3 / Zope 2 combination? The
> cleanup code is from six years back before BTreeFolder2 was even part
> of a Zope2 release, I was close to removing it the other day.

Problem was due to broken object. Seems to affect sibling objects or 
even objects higher up in the hierarchy (can't navigate to them in the 
ZMI). Not sure if anything can be done to fix it though.

Suresh



More information about the ZODB-Dev mailing list