AttributeError: type object 'IQueue' has no attribute '__iro__'

Bug #363127 reported by awong
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Singing & Dancing
Fix Released
Undecided
Unassigned

Bug Description

I am having difficulty removing collective.dancing 0.8.9 from buildout. I have uninstalled the product in Site Setup, and restored my buildout as before:
1. remove extend=https://svn.plone.org/svn/collective/collective.dancing/buildout-extends/0.8.7.cfg
2. restoring additional-fake eggs = ZConfig pytz

After rebuilding buildout, when I try to run Plone the following appears:
Site Error: An error was encountered while publishing this resource.
Error Type: AttributeError
Error Value: type object 'ISalt' has no attribute '__iro__'

The following error appears in my event.log file:
ERROR Zope.SiteErrorLog http://test.mysite.com/test
Traceback (innermost last):
  Module ZPublisher.Publish, line 110, in publish
  Module ZPublisher.BaseRequest, line 424, in traverse
  Module ZPublisher.BeforeTraverse, line 99, in __call__
  Module Products.CMFCore.PortalObject, line 94, in __before_publishing_traverse__
  Module zope.event, line 23, in notify
  Module zope.component.event, line 26, in dispatch
  Module zope.component._api, line 130, in subscribers
  Module zope.component.registry, line 290, in subscribers
  Module zope.interface.adapter, line 535, in subscribers
  Module zope.component.event, line 33, in objectEventNotify
  Module zope.component._api, line 130, in subscribers
  Module zope.component.registry, line 290, in subscribers
  Module zope.interface.adapter, line 535, in subscribers
  Module zope.app.component.site, line 375, in threadSiteSubscriber
  Module zope.app.component.hooks, line 61, in setSite
  Module Products.CMFCore.PortalObject, line 75, in getSiteManager
  Module ZODB.Connection, line 761, in setstate
  Module ZODB.Connection, line 819, in _setstate
  Module ZODB.serialize, line 605, in setGhostState
  Module zope.component.persistentregistry, line 42, in __setstate__
  Module zope.interface.adapter, line 80, in _createLookup
  Module zope.interface.adapter, line 389, in __init__
  Module zope.interface.adapter, line 426, in init_extendors
  Module zope.interface.adapter, line 430, in add_extendor
AttributeError: type object 'IQueue' has no attribute '__iro__'

The only way I can get my Plone site to work is to not remove collective.dancing from buildout. Please advice.

Revision history for this message
Jeremy Phillips (jeremy-cogneurosociety) wrote :

I've got this same problem (identical error lots) when I try to remove Singing and Dancing (latest version 0.8.10 on Plone 3.2.3). It seems like the uninstall is leaving something behind in the ZODB, but I can't find it.

Also, the uninstall leaves the Plone control panel configlet in place--I had to go to portal_controlpanel in the ZMI to remove it after uninstalling S&D.

Revision history for this message
Régis Rouet (regis-rouet) wrote :

I have a similar error with IQueue after having uninstalled and removed from buildout several products including S&D 0.8.12.

Then, if I uncomment S&D in buildout, the error doesn't happen.

2009-10-15T19:10:42 ERROR Zope.SiteErrorLog 1255626642.90.462587540124 ...
Traceback (innermost last):
  Module plone.postpublicationhook.hook, line 65, in publish
  Module ZPublisher.BaseRequest, line 424, in traverse
  Module ZPublisher.BeforeTraverse, line 99, in __call__
  Module Products.CMFCore.PortalObject, line 94, in __before_publishing_traverse__
  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 535, 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 535, in subscribers
  Module zope.app.component.site, line 375, in threadSiteSubscriber
  Module zope.app.component.hooks, line 61, in setSite
  Module Products.CMFCore.PortalObject, line 75, in getSiteManager
  Module ZODB.Connection, line 761, in setstate
  Module ZODB.Connection, line 819, in _setstate
  Module ZODB.serialize, line 605, in setGhostState
  Module zope.component.persistentregistry, line 42, in __setstate__
  Module zope.interface.adapter, line 80, in _createLookup
  Module zope.interface.adapter, line 389, in __init__
  Module zope.interface.adapter, line 426, in init_extendors
  Module zope.interface.adapter, line 430, in add_extendor
AttributeError: type object 'IQueue' has no attribute '__iro__'

Revision history for this message
kmleon (middleearthradio) wrote :

I too am dealing with the same issue on Plone Bundle 3.3.1 on Linux.
Any hope of a solution to clean out this mess once it has munged a system? I had tested it on a test system, but it fell apart on the production system. It worked, but now that we do not want it, we can't get rid of it without killing the one site that used it. Fortunately it is not taking down all the other sites. Suggestions please for cleaning this out?

Thanks.

Error message here:
2009-11-03T21:46:30 ERROR Zope.SiteErrorLog 1257284790.980.194379445083 http://www.tolkienscholars.com/tolkienscholars
Traceback (innermost last):
  Module ZPublisher.Publish, line 110, in publish
  Module ZPublisher.BaseRequest, line 424, in traverse
  Module ZPublisher.BeforeTraverse, line 99, in __call__
  Module Products.CMFCore.PortalObject, line 94, in __before_publishing_traverse__
  Module zope.event, line 23, in notify
  Module zope.component.event, line 26, in dispatch
  Module zope.component._api, line 130, in subscribers
  Module zope.component.registry, line 290, in subscribers
  Module zope.interface.adapter, line 535, in subscribers
  Module zope.component.event, line 33, in objectEventNotify
  Module zope.component._api, line 130, in subscribers
  Module zope.component.registry, line 290, in subscribers
  Module zope.interface.adapter, line 535, in subscribers
  Module zope.app.component.site, line 375, in threadSiteSubscriber
  Module zope.app.component.hooks, line 61, in setSite
  Module Products.CMFCore.PortalObject, line 75, in getSiteManager
  Module ZODB.Connection, line 761, in setstate
  Module ZODB.Connection, line 819, in _setstate
  Module ZODB.serialize, line 605, in setGhostState
  Module zope.component.persistentregistry, line 42, in __setstate__
  Module zope.interface.adapter, line 80, in _createLookup
  Module zope.interface.adapter, line 389, in __init__
  Module zope.interface.adapter, line 426, in init_extendors
  Module zope.interface.adapter, line 430, in add_extendor
AttributeError: type object 'ISalt' has no attribute '__iro__'

Revision history for this message
Daniel Nouri (daniel.nouri) wrote :

This is a general problem with local utilites in Plone. Our uninstaller needs to remove the utility. There's a little how to that describes how to get rid of these after removal of the package (S&D in this case). http://blog.fourdigits.nl/removing-a-persistent-local-utility

We need to fix this in the uninstallation. In the meantime, apply the fix manually.

Revision history for this message
kmleon (middleearthradio) wrote :

Not sure how to apply this correctly to singing-dancing issue. Looking at this (as per suggestion): http://blog.fourdigits.nl/removing-a-persistent-local-utility

Does this mean I have to try to get singing-dancing reinstalled (messes with ZODB version), so that I can remove the trailing pieces?

Right now I have singinganddancing removed from buildout.cfg, I had removed it from within Plone site setup products, I did a rm -R for the singinganddancing dir in cache_buildout/downloads/dist/ and cache_buildout/eggs/ and removed it's listing from ZMI control panel root listing of products, then shut down server and instances, ran buildout with cleaned up buildout.cfg (so no longer using the funkier ZODB that singinganddancing had required for installation earlier (and caused a cascade mess with other products later on). Started up server and instances again.
So, how do use that link to remove the tendrils that have crippled the site that used it? Sorry I am not quite getting how to apply it.
Zope/Extensions is empty, and since I removed singinganddancing there is no Install.py to apply. Do I need to go through the (terrible) process of reinstalling singing and dancing once again, then patch the Install.py in that buildout created dir, and then run through the uninstall?

Thanks for any guidance.

Revision history for this message
Daniel Nouri (daniel.nouri) wrote :

No need to reinstall S&D in your site. But you'll need to be able to import the interface of the utility in question (ISalt). The only thing you need to do then is to run the two steps (and apply them for ISalt). You use PDBDebugMode or the Zope shell (bin/instance debug) for that.

Revision history for this message
Daniel Nouri (daniel.nouri) wrote :

I finally got around to fixing this long-standing bug in r363127. This will be part of the next release.

Changed in singing-dancing:
status: New → Fix Committed
Changed in singing-dancing:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.