[Zope-dev] fail loading persistentregistry

Jean-François Roche jfroche at jfroche.be
Wed Jun 24 08:14:20 EDT 2009


Hello,

Within zope2 (2.10.6) I can't load the pickle containing the
persistentregistry any more because I removed a product that has
persistent adatpers. So I am having a state that looks like this:

{'LookupClass': <class
'five.localsitemanager.registry.FiveVerifyingAdapterLookup'>,
 '__bases__': (<zope.component.globalregistry.GlobalAdapterRegistry
object at 0x7f38ad2f6bd0>,),
 '__parent__': <PersistentComponents /m00019/prsi>,
 '_adapters': [{<InterfaceClass
Products.ATContentTypes.interface.interfaces.IATCTTool>: {u'': <ATCTTool
at portal_atct>},
                <InterfaceClass
Products.CMFActionIcons.interfaces._tools.IActionIconsTool>: {u'':
<ActionIconsTool at portal_actionicons>},
                <class
'clearwind.arecibo.interfaces.IAreciboConfiguration'>:
{u'Arecibo_config': <AreciboConfiguration at broken>},
                <InterfaceClass
plone.app.i18n.locales.interfaces.IContentLanguages>: {u'':
<ContentLanguages at plone_app_content_languages>},
...]
'_generation': ...,
'_provided': ...,
'_subscribers': ...,
}

Clearly this registry is in bad shape because of the reference to the
broken interface. What are my options to remove the reference within
this pickle ?

Would it be possible disable/remove (before setstate) the broken class
from the registry (with a huge warning) instead of letting the user get
a "AttributeError: type object 'IAreciboConfiguration' has no attribute
'__iro__' exception" later on when the adapter is looked up ?

Thanks in advance,

		Jeff


More information about the Zope-Dev mailing list