ZSQL/ZODB corruption after upgrade
I'm working on upgrading our Zope 2.3.2/CMF 1.1beta/LoginManager based site to Zope 2.4.4/CMF1.2/exUserFolder (eventually Zope 2.6.1/CMF1.3, but I've been advised to do it version by version). Right now almost everything works on 2.4.4. All of the bits of the LoginManager user folder have be deleted, including ZPatterns, our ZClass based user object, etc. I've added exUserFolder, which seems to work correctly (all of the actual user data remains in a PostgreSQL database). But there's one odd problem... If I open a ZSQL method (any ZSQL method, new or old, inside the area that used to be controlled by LoginManager or not) it seems OK. Using the method works. But if I click on the Advanced tab in the ZMI, I get the following: Zope Error Zope has encountered an error while publishing this resource. Error Type: Could not load oid <gibberish> , pickled data in traceback info may contain clues Error Value: None ... Traceback (innermost last): File /var/local/control/V4/site/zope/lib/python/ZPublisher/Publish.py, line 223, in publish_module File /var/local/control/V4/site/zope/lib/python/ZPublisher/Publish.py, line 187, in publish File /var/local/control/V4/site/zope/lib/python/Zope/__init__.py, line 226, in zpublisher_exception_hook (Object: sqlTest) File /var/local/control/V4/site/zope/lib/python/ZPublisher/Publish.py, line 171, in publish File /var/local/control/V4/site/zope/lib/python/ZPublisher/mapply.py, line 160, in mapply (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/ZPublisher/Publish.py, line 112, in call_object (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/Shared/DC/Scripts/Bindings.py, line 324, in __call__ (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/Shared/DC/Scripts/Bindings.py, line 354, in _bindAndExec (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/App/special_dtml.py, line 244, in _exec (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/Shared/DC/ZRDB/DA.py, line 548, in manage_product_zclass_info (Object: sqlTest) File /var/local/control/V4/site/zope/lib/python/ZODB/Connection.py, line 544, in setstate File /var/local/control/V4/site/zope/lib/python/ZODB/Connection.py, line 227, in _persistent_load (Info: ('\x00\x00\x00\x00\x00\x05*\xf6', '(cExtensionClass\nExtensionClass\nq\x01(U\x1eCComMember_PropertySheetsClassq\x02(cZClasses.ZClass\nPersistentClass\nq\x03cProducts.ZPatterns.PropertySheets\nVirtualSheets\nq\x04cZClasses.Property\nZInstanceSheets\nq\x05tq\x06}q\x07(U\x04iconq\x08U\x00U\n_p_changedq\tK\x01U\x07__doc__q\nU\x1aCComMember Property Sheetsq\x0bU\rsimple_topicsq\x0c(U\x08\x00\x00\x00\x00\x00.\xde\x02q\r(U\x11ZClasses.Propertyq\x0eU\x0eZInstanceSheetq\x0fttQU\x11__propset_attrs__q\x10(U\x11member_statisticsq\x11U\x07addressq\x12U\rsimple_topicsq\x13U\x15survey_qualificationsq\x14U\rsubscriptionsq\x15U\npromotionsq\x16tq\x17U\x07addressq\x18(U\x08\x00\x00\x00\x00\x00.\xde\x00q\x19(h\x0eU\x0eZInstanceSheetq\x1attQU\x06_p_oidq\x1bU\x08\x00\x00\x00\x00\x00\x05*\xf6q\x1cU\x15survey_qualificationsq\x1d(U\x08\x00\x00\x00\x00\x00p\xd1\x80q\x1e(h\x0eU\x0eZInstanceSheetq\x1fttQh\x15(U\x08\x00\x00\x00\x00\x00r%\xdfq (h\x0eU\x0eZInstanceSheetq!ttQU\t_p_serialq"U\x08\ x03C\x8d\x17\xda\x88MDq#U\x11member_statisticsq$(U\x08\x00\x00\x00\x00\x00\x13\x0b\xa7q%(h\x0eU\x0eZInstanceSheetq&ttQU\n__module__q\'Nh\x16(U\x08\x00\x00\x00\x00\x00r%\xe1q((h\x0eU\x0eZInstanceSheetq)ttQutq*t.N.')) Could not load oid <gibberish> pickled data in traceback info may contain clues: (see above) Obviously not all of the LoginManager stuff was correctly deleted. How can I get this junk out of the ZODB? Help, Dan Pierson
Dan L. Pierson wrote at 2003-2-7 13:03 -0500:
... If I open a ZSQL method (any ZSQL method, new or old, inside the area that used to be controlled by LoginManager or not) it seems OK. Using the method works. But if I click on the Advanced tab in the ZMI, I get the following: ... (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/Shared/DC/ZRDB/DA.py, line 548, in manage_product_zclass_info
One of your ZClasses is broken... Catch the exception in line 548 of "Shared/DC/ZRDB/DA.py" and find out which one. Do something about it... Dieter
Thanks for giving me a push in the right direction. I already knew from the message that it was the CComMember zclass. The problem was that I had deleted all instances of that zclass when I deleted the LoginManager based acl_users. I then deleted the zclass from the Products folder of the Control Panel. Turns out that it was *still* in the product registry! I had to use a debug session, manually build a new registry tuple and use app._setProductRegistryData() to get rid of it. Everything seems fine now. --On Saturday, February 08, 2003 01:18:50 PM +0100 Dieter Maurer <dieter@handshake.de> wrote:
Dan L. Pierson wrote at 2003-2-7 13:03 -0500:
... If I open a ZSQL method (any ZSQL method, new or old, inside the area that used to be controlled by LoginManager or not) it seems OK. Using the method works. But if I click on the Advanced tab in the ZMI, I get the following: ... (Object: manage_advancedForm) File /var/local/control/V4/site/zope/lib/python/Shared/DC/ZRDB/DA.py, line 548, in manage_product_zclass_info
One of your ZClasses is broken...
Catch the exception in line 548 of "Shared/DC/ZRDB/DA.py" and find out which one. Do something about it...
Dieter
participants (3)
-
Dan L. Pierson -
dan@control.com -
Dieter Maurer