[ZODB-Dev] ZODB KeyError

Daniel Widerin daniel.widerin at kombinat.at
Tue Dec 22 09:28:48 EST 2009


Am 22.12.09 15:04, schrieb Jim Fulton:
> On Tue, Dec 22, 2009 at 6:37 AM, Daniel Widerin
> <daniel.widerin at kombinat.at>  wrote:
>> Hi all,
>>
>> I'm getting a ZODB KeyError on every write access to the ZODB. Reading
>> is possible without problems. This ZODB is 2.4 GB at size an running a
>> single Plone 3.3.3 site, ZODB Version is 3.8.5 *without* plone.app.blob
>> installed. I used 3.8.x because i have an seperated catalog mountpoint
>> using it's own storage and need cross-reference-packing support.
>>
>>
>> Traceback (innermost last):
>>
>>      * Module ZPublisher.Publish, line 119, in publish
>>      * Module ZPublisher.mapply, line 88, in mapply
>>      * Module ZPublisher.Publish, line 42, in call_object
>>      * Module Products.CMFPlone.FactoryTool, line 371, in __call__
>>      * Module Products.CMFPlone.FactoryTool, line 155, in __getitem__
>>      * Module Products.CMFPlone.PloneFolder, line 348, in invokeFactory
>>      * Module Products.CMFCore.TypesTool, line 716, in constructContent
>>      * Module Products.CMFCore.TypesTool, line 276, in constructInstance
>>      * Module Products.CMFCore.TypesTool, line 450, in _constructInstance
>>      * Module Products.ATContentTypes.content.image, line 4, in addATImage
>>      * Module OFS.ObjectManager, line 348, in _setObject
>>      * Module zope.event, line 23, in notify
>>      * Module zope.component.event, line 26, in dispatch
>>      * Module zope.component._api, line 131, in subscribers
>>      * Module zope.component.registry, line 300, in subscribers
>>      * Module zope.interface.adapter, line 575, in subscribers
>>      * Module zope.component.event, line 33, in objectEventNotify
>>      * Module zope.component._api, line 131, in subscribers
>>      * Module zope.component.registry, line 300, in subscribers
>>      * Module zope.interface.adapter, line 575, in subscribers
>>      * Module five.intid.intid, line 81, in addIntIdSubscriber
>>      * Module five.intid.intid, line 36, in register
>>      * Module zope.app.intid, line 106, in _generateId
>>      * Module ZODB.Connection, line 815, in setstate
>>      * Module ZODB.Connection, line 874, in _setstate
>>      * Module ZODB.serialize, line 604, in setGhostState
>>      * Module ZODB.serialize, line 597, in getState
>>      * Module ZODB.serialize, line 479, in _persistent_load
>>      * Module ZODB.serialize, line 543, in load_multi_oid
>>      * Module ZODB.serialize, line 537, in load_oid
>>      * Module ZODB.Connection, line 244, in get
>>      * Module ZEO.ClientStorage, line 712, in load
>>      * Module ZEO.ClientStorage, line 735, in loadEx
>>      * Module ZEO.ServerStub, line 196, in loadEx
>>      * Module ZEO.zrpc.connection, line 699, in call
>>
>> KeyError: '\x00\x00\x00\x00\x00\x01#\xc6'
>>
>>
>>
>> Any hints?
>> btw: ZEO and ZOPE Clients run on different (virtual) servers. Python
>> Version is 2.4.6, Zope Version is 2.10.9, OS is Debian 5.0
>
> There should be a traceback at the same time in the ZEO server log.
> Could you share that too?
>
> Jim
>

Hi all,

There was no ZEO log traceback.

i discoverd that five.intid was responsible for this disaster. i wrote 
some small code into one of my views which reinit the intid's on the 
portal object::

     import transaction
     from zope.component import getMultiAdapter
     from five.intid.site import add_intids, del_intids

     portal_state = getMultiAdapter(
         (self.context, self.request), name="plone_portal_state")
     portal = portal_state.portal()

     del_intids(portal)
     add_intids(portal)

     transaction.commit()

I found something similar here:
http://code.google.com/p/getpaid/issues/detail?id=209

Everything works fine again.



More information about the ZODB-Dev mailing list