Error messages in startup after copying a Data.fs to a new zope version
I have ported a zope product running on zope 2.5.1 to zope 2.9. The application works fine with no error messages in the log. Now I want to port an old Data.fs from zope 2.5.1 with the Product Data on. It seem to work fine by just copying it to the new zope 2.9 var directory. But every time I restart I get the error messages written at the bottom of this email. As said everything seems to work fine even searching. There is no error messages after zope has started. So, does anyone know what errors the below messages could cause, and what I can do to correct them? 2007-01-12T10:12:37 INFO ZODB.Mount Opening database for mounting: '142907168_1016702399.626485' ------ 2007-01-12T10:12:37 INFO ZODB.Mount Mounted database '142907168_1016702399.626485' at /temp_folder ------ 2007-01-12T10:12:37 INFO Zope.ZCatalog Start migration of indexes for Control_Panel/Products/ExternalMethod/Help/catalog ------ 2007-01-12T10:12:37 WARNING ZODB Could not import class 'BTree' from module 'BTree' ------ 2007-01-12T10:12:37 WARNING ZODB Could not import class 'UnTextIndex' from module 'SearchIndex.UnTextIndex' ------ 2007-01-12T10:12:37 WARNING ZODB Could not import class 'UnKeywordIndex' from module 'SearchIndex.UnKeywordIndex' ------ 2007-01-12T10:12:37 WARNING ZODB Could not import class 'BTree' from module 'OIBTree' ------ 2007-01-12T10:12:37 WARNING ZODB Could not import class 'BTree' from module 'IOBTree' ------ 2007-01-12T10:12:37 INFO Zope.ZCatalog Finished migration of indexes for Control_Panel/Products/ExternalMethod/Help/catalog ------ 2007-01-12T10:12:37 ERROR OFS.subscribers _delObject() threw Traceback (most recent call last): File "/usr/lib/zope2.9/lib/python/OFS/subscribers.py", line 149, in callManageBeforeDelete ob.manage_beforeDelete(item, container) File "/usr/lib/zope2.9/lib/python/HelpSys/HelpTopic.py", line 85, in manage_beforeDelete self.unindex_object() File "/usr/lib/zope2.9/lib/python/HelpSys/HelpTopic.py", line 95, in unindex_object self.get_catalog().uncatalog_object(prefix + self.url()) File "/usr/lib/zope2.9/lib/python/Products/ZCatalog/ZCatalog.py", line 599, in uncatalog_object self._catalog.uncatalogObject(uid) File "/usr/lib/zope2.9/lib/python/Products/ZCatalog/Catalog.py", line 383, in uncatalogObject rid = uids.get(uid, None) AttributeError: get ... The above is repeated around 20-50 times ... and it ends with the following message 2007-01-12T10:12:38 ERROR Zope Couldn't install ZCatalog Traceback (most recent call last): File "/usr/lib/zope2.9/lib/python/OFS/Application.py", line 783, in install_product initmethod(context) File "/usr/lib/zope2.9/lib/python/Products/ZCatalog/__init__.py", line 44, in initialize context.registerHelp() File "/usr/lib/zope2.9/lib/python/App/ProductContext.py", line 361, in registerHelp self.registerHelpTopic(file, ht) File "/usr/lib/zope2.9/lib/python/App/ProductContext.py", line 275, in registerHelpTopic self.getProductHelp()._setObject(id, topic) File "/usr/lib/zope2.9/lib/python/OFS/ObjectManager.py", line 333, in _setObject notify(ObjectAddedEvent(ob, self, id)) File "/usr/lib/zope2.9/lib/python/zope/event/__init__.py", line 23, in notify subscriber(event) File "/usr/lib/zope2.9/lib/python/zope/app/event/dispatching.py", line 66, in dispatch for ignored in subscribers(event, None): File "/usr/lib/zope2.9/lib/python/zope/component/__init__.py", line 181, in subscribers return sitemanager.subscribers(objects, interface) File "/usr/lib/zope2.9/lib/python/zope/component/site.py", line 89, in subscribers return self.adapters.subscribers(required, provided) File "/usr/lib/zope2.9/lib/python/zope/interface/adapter.py", line 481, in subscribers subscribers = [subscription(*objects) File "/usr/lib/zope2.9/lib/python/zope/app/event/objectevent.py", line 192, in objectEventNotify adapters = subscribers((event.object, event), None) File "/usr/lib/zope2.9/lib/python/zope/component/__init__.py", line 181, in subscribers return sitemanager.subscribers(objects, interface) File "/usr/lib/zope2.9/lib/python/zope/component/site.py", line 89, in subscribers return self.adapters.subscribers(required, provided) File "/usr/lib/zope2.9/lib/python/zope/interface/adapter.py", line 481, in subscribers subscribers = [subscription(*objects) File "/usr/lib/zope2.9/lib/python/OFS/subscribers.py", line 114, in dispatchObjectMovedEvent callManageAfterAdd(ob, event.object, event.newParent) File "/usr/lib/zope2.9/lib/python/OFS/subscribers.py", line 137, in callManageAfterAdd ob.manage_afterAdd(item, container) File "/usr/lib/zope2.9/lib/python/HelpSys/HelpTopic.py", line 79, in manage_afterAdd self.index_object() File "/usr/lib/zope2.9/lib/python/HelpSys/HelpTopic.py", line 92, in index_object self.get_catalog().catalog_object(self, prefix + self.url()) File "/usr/lib/zope2.9/lib/python/Products/ZCatalog/ZCatalog.py", line 567, in catalog_object update_metadata=update_metadata) File "/usr/lib/zope2.9/lib/python/Products/ZCatalog/Catalog.py", line 336, in catalogObject index = self.uids.get(uid, None) AttributeError: get
Jonas Nielsen wrote at 2007-1-12 11:18 +0100:
.... I have ported a zope product running on zope 2.5.1 to zope 2.9. The application works fine with no error messages in the log. ... File "/usr/lib/zope2.9/lib/python/Products/ZCatalog/Catalog.py", line 383, in uncatalogObject rid = uids.get(uid, None) AttributeError: get
It is possible that you catalogs are ancient? Even older than Zope 2.5.1? Efficient mappings (such as those needed for the catalog data structures) were implemented originally by "BTree" classes. Later, "BTree" functionality was reimplemented and improved in the "BTrees" package. In Zope 2.8, "BTree" support was dropped (as Zope's base class "ExtensionClass" was rewritten as a new style Python class and porting the old "BTree" package would have been additional effort). Apparently, you catalogs still use the old "BTree" package -- at least this would give error messages such as the above. If I am right and your are interested in keeping your catalog rather than just rebuilding it in the new instance, then you would need to migrate the old "BTree" objects into new "BTrees" objects *IN THE OLD* instance. After that, you can move the storage. -- Dieter
participants (2)
-
Dieter Maurer -
Jonas Nielsen