#31 — Cannot uninstall CMSNotification

by Dana Cordes last modified Dec 29, 2010 02:09 PM
State Resolved
Version: 2.1
Area Functionality
Issue type Bug
Severity Medium
Submitted by Dana Cordes
Submitted on May 08, 2009
Responsible Damien Baty
Target release: 2.1
After installing CMSNotification in Plone 3.2.2 zeo from unified installer, my site breaks when the addon is uninstalled.
Steps to reproduce:
Install fresh Plone 3.2.2 install using unified installer. Install CMFNotifications. Uninstall CMFNotifications. Breakage:
Site Error

An error was encountered while publishing this resource.

KeyError
Sorry, a site error occurred.

Traceback (innermost last):

    * Module ZPublisher.Publish, line 202, in publish_module_standard
    * Module Products.LinguaPlone.patches, line 66, in new_publish
    * Module ZPublisher.Publish, line 150, in publish
    * Module plone.app.linkintegrity.monkey, line 21, in zpublisher_exception_hook_wrapper
    * Module Zope2.App.startup, line 221, in zpublisher_exception_hook
    * Module ZPublisher.Publish, line 119, in publish
    * Module ZPublisher.mapply, line 88, in mapply
    * Module ZPublisher.Publish, line 42, in call_object
    * Module Shared.DC.Scripts.Bindings, line 313, in __call__
    * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
    * Module Products.CMFCore.FSPageTemplate, line 216, in _exec
    * Module Products.CacheSetup.patch_cmf, line 28, in FSPT_pt_render
    * Module Products.CacheSetup.patch_utils, line 9, in call_pattern
    * Module Products.CMFCore.FSPageTemplate, line 155, in pt_render
    * Module Products.CacheSetup.patch_cmf, line 74, in PT_pt_render
    * Module Products.CacheSetup.patch_utils, line 9, in call_pattern
    * Module Products.PageTemplates.PageTemplate, line 98, in pt_render
    * Module zope.pagetemplate.pagetemplate, line 117, in pt_render
    * Module zope.tal.talinterpreter, line 271, in __call__
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 891, in do_useMacro
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 521, in do_optTag
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
    * Module Products.PageTemplates.Expressions, line 221, in evaluateStructure
    * Module zope.tales.tales, line 696, in evaluate
      URL: file:/usr/local/Plone/buildout-cache/eggs/Plone-3.2.2-py2.4.egg/Products/CMFPlone/skins/plone_templates/main_template.pt
      Line 34, Column 4
      Expression: <StringExpr u'plone.htmlhead'>
      Names:

      {'container': <PloneSite at /CRMTeam>,
       'context': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'default': <object object at 0xb7f78528>,
       'here': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'loop': {},
       'nothing': None,
       'options': {'args': ()},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x110dea6c>,
       'request': <HTTPRequest, URL=http://crmteam.la.minebea.local/nmbtc-crm-team-plone/document_view>,
       'root': <Application at >,
       'template': <FSPageTemplate at /CRMTeam/document_view used for /CRMTeam/nmbtc-crm-team-plone>,
       'traverse_subpath': [],
       'user': <PloneUser 'dcordes'>}

    * Module Products.Five.browser.providerexpression, line 37, in __call__
    * Module plone.app.viewletmanager.manager, line 80, in render
    * Module zope.app.pagetemplate.simpleviewclass, line 44, in __call__
    * Module Shared.DC.Scripts.Bindings, line 313, in __call__
    * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
    * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
    * Module Products.CacheSetup.patch_cmf, line 74, in PT_pt_render
    * Module Products.CacheSetup.patch_utils, line 9, in call_pattern
    * Module Products.PageTemplates.PageTemplate, line 98, in pt_render
    * Module zope.pagetemplate.pagetemplate, line 117, in pt_render
    * Module zope.tal.talinterpreter, line 271, in __call__
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 521, in do_optTag
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
    * Module Products.PageTemplates.Expressions, line 221, in evaluateStructure
    * Module zope.tales.tales, line 696, in evaluate
      URL: index
      Line 4, Column 2
      Expression: <StringExpr 'plone.resourceregistries.kineticstylesheets'>
      Names:

      {'container': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'context': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'default': <object object at 0xb7f78528>,
       'here': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'loop': {},
       'nothing': None,
       'options': {'args': ()},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x1111910c>,
       'request': <HTTPRequest, URL=http://crmteam.la.minebea.local/nmbtc-crm-team-plone/document_view>,
       'root': <Application at >,
       'template': <ImplicitAcquirerWrapper object at 0x111191ec>,
       'traverse_subpath': [],
       'user': <PloneUser 'dcordes'>,
       'view': <Products.Five.viewlet.viewlet.SimpleViewletClass from /usr/local/Plone/buildout-cache/eggs/Products.ResourceRegistries-1.4.3-py2.4.egg/Products/ResourceRegistries/browser/resourceregistries.pt object at 0x11119b2c>,
       'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0x111190ec>}

    * Module Products.Five.browser.providerexpression, line 37, in __call__
    * Module zope.viewlet.manager, line 110, in render
    * Module Shared.DC.Scripts.Bindings, line 313, in __call__
    * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
    * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
    * Module Products.CacheSetup.patch_cmf, line 74, in PT_pt_render
    * Module Products.CacheSetup.patch_utils, line 9, in call_pattern
    * Module Products.PageTemplates.PageTemplate, line 98, in pt_render
    * Module zope.pagetemplate.pagetemplate, line 117, in pt_render
    * Module zope.tal.talinterpreter, line 271, in __call__
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 822, in do_loop_tal
    * Module zope.tales.tales, line 682, in setRepeat
    * Module zope.tales.tales, line 696, in evaluate
      URL: template
      Line 1, Column 0
      Expression: <PathExpr standard:'view/kineticstylesheets'>
      Names:

      {'container': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'context': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'default': <object object at 0xb7f78528>,
       'here': <ATDocument at /CRMTeam/nmbtc-crm-team-plone>,
       'loop': {},
       'nothing': None,
       'options': {'args': (), 'viewlets': []},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x11119e0c>,
       'request': <HTTPRequest, URL=http://crmteam.la.minebea.local/nmbtc-crm-team-plone/document_view>,
       'root': <Application at >,
       'template': <ImplicitAcquirerWrapper object at 0x11119dac>,
       'traverse_subpath': [],
       'user': <PloneUser 'dcordes'>,
       'view': <Products.Five.viewlet.manager.<ViewletManager providing IHtmlHeadStyles> object at 0x11119d6c>,
       'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0x11119dec>}

    * Module zope.tales.expressions, line 217, in __call__
    * Module Products.PageTemplates.Expressions, line 161, in _eval
    * Module Products.PageTemplates.Expressions, line 123, in render
    * Module Products.ResourceRegistries.browser.kss, line 22, in kineticstylesheets
    * Module Products.ResourceRegistries.tools.BaseRegistry, line 783, in getEvaluatedResources
    * Module Products.ResourceRegistries.tools.BaseRegistry, line 465, in evaluateExpression
      __traceback_info__: (<PloneSite at /CRMTeam>, <PloneSite at /CRMTeam>, <ATDocument at /CRMTeam/nmbtc-crm-team-plone>, 'portal/portal_notification/isExtraSubscriptionsEnabled')
    * Module Products.CMFCore.Expression, line 48, in __call__
    * Module zope.tales.expressions, line 217, in __call__
    * Module Products.PageTemplates.Expressions, line 153, in _eval
    * Module zope.tales.expressions, line 124, in _eval
    * Module Products.PageTemplates.Expressions, line 80, in boboAwareZopeTraverse
    * Module OFS.Traversable, line 301, in restrictedTraverse
    * Module OFS.Traversable, line 284, in unrestrictedTraverse
      __traceback_info__: ([], 'portal_notification')

KeyError: 'portal_notification' (Also, the following error occurred while attempting to render the standard error message, please see the event log for full details: 'portal_notification')

Troubleshooting Suggestions

    * The URL may be incorrect.
    * The parameters passed to this resource may be incorrect.
    * A resource that this resource relies on may be encountering an error.

For more detailed information about the error, please refer to the error log.

If the error persists please contact the site maintainer. Thank you for your patience.
Added by Stefan Merten on Apr 18, 2010 01:42 PM
Same here. I got the included backtrace immediately after uninstalling.

I restarted the instance after installation and the error appeared again. The only way to resolve the problem was to undo the action via the ZMI. I.e. uninstallation is impossible.

My Plone version:

    * Plone 3.3.2
    * CMF 2.1.2
    * Zope (Zope 2.10.9-final, python 2.4.6, linux2)
    * Python 2.4.6 (#1, Jan 10 2010, 20:00:44) [GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu4)]
    * PIL 1.1.6

------

Site Error

An error was encountered while publishing this resource.

KeyError
Sorry, a site error occurred.

Traceback (innermost last):

    * Module ZPublisher.Publish, line 202, in publish_module_standard
    * Module ZPublisher.Publish, line 150, in publish
    * Module plone.app.linkintegrity.monkey, line 21, in zpublisher_exception_hook_wrapper
    * Module Zope2.App.startup, line 221, in zpublisher_exception_hook
    * Module ZPublisher.Publish, line 119, in publish
    * Module ZPublisher.mapply, line 88, in mapply
    * Module ZPublisher.Publish, line 42, in call_object
    * Module Shared.DC.Scripts.Bindings, line 313, in __call__
    * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
    * Module Products.CMFCore.FSPageTemplate, line 216, in _exec
    * Module Products.CacheSetup.patch_cmf, line 51, in FSPT_pt_render
    * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
    * Module zope.tal.talinterpreter, line 271, in __call__
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 891, in do_useMacro
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 521, in do_optTag
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 891, in do_useMacro
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 521, in do_optTag
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
    * Module Products.PageTemplates.Expressions, line 223, in evaluateStructure
    * Module zope.tales.tales, line 696, in evaluate
      URL: file:/srv/www/plone/buildout-cache/eggs/Plone-3.3.2-py2.4.egg/Products/CMFPlone/skins/plone_templates/main_template.pt
      Line 39, Column 4
      Expression: <StringExpr u'plone.htmlhead'>
      Names:

      {'container': <PloneSite at /Journal>,
       'context': <PloneSite at /Journal>,
       'default': <object object at 0xb7c45528>,
       'here': <PloneSite at /Journal>,
       'loop': {},
       'nothing': None,
       'options': {'args': ()},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xca466ac>,
       'request': <HTTPRequest, URL=http://localhost:8008/[…]/prefs_install_products_form>,
       'root': <Application at >,
       'template': <FSPageTemplate at /Journal/prefs_install_products_form>,
       'traverse_subpath': [],
       'user': <PloneUser 'smerten'>}

    * Module Products.Five.browser.providerexpression, line 37, in __call__
    * Module plone.app.viewletmanager.manager, line 83, in render
    * Module zope.app.pagetemplate.simpleviewclass, line 44, in __call__
    * Module Shared.DC.Scripts.Bindings, line 313, in __call__
    * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
    * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
    * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
    * Module zope.tal.talinterpreter, line 271, in __call__
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 521, in do_optTag
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
    * Module zope.tal.talinterpreter, line 516, in no_tag
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
    * Module Products.PageTemplates.Expressions, line 223, in evaluateStructure
    * Module zope.tales.tales, line 696, in evaluate
      URL: index
      Line 4, Column 2
      Expression: <StringExpr 'plone.resourceregistries.kineticstylesheets'>
      Names:

      {'container': <PloneSite at /Journal>,
       'context': <PloneSite at /Journal>,
       'default': <object object at 0xb7c45528>,
       'here': <PloneSite at /Journal>,
       'loop': {},
       'nothing': None,
       'options': {'args': ()},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xdb7fc8c>,
       'request': <HTTPRequest, URL=http://localhost:8008/[…]/prefs_install_products_form>,
       'root': <Application at >,
       'template': <ImplicitAcquirerWrapper object at 0xdb7fa2c>,
       'traverse_subpath': [],
       'user': <PloneUser 'smerten'>,
       'view': <Products.Five.viewlet.viewlet.SimpleViewletClass from /srv/www/plone/buildout-cache/eggs/Products.ResourceRegistries-1.5.3-py2.4.egg/Products/ResourceRegistries/browser/resourceregistries.pt object at 0xdb7facc>,
       'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0xdb7fc4c>}

    * Module Products.Five.browser.providerexpression, line 37, in __call__
    * Module zope.viewlet.manager, line 110, in render
    * Module Shared.DC.Scripts.Bindings, line 313, in __call__
    * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
    * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
    * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
    * Module zope.tal.talinterpreter, line 271, in __call__
    * Module zope.tal.talinterpreter, line 346, in interpret
    * Module zope.tal.talinterpreter, line 822, in do_loop_tal
    * Module zope.tales.tales, line 682, in setRepeat
    * Module zope.tales.tales, line 696, in evaluate
      URL: template
      Line 1, Column 0
      Expression: <PathExpr standard:'view/kineticstylesheets'>
      Names:

      {'container': <PloneSite at /Journal>,
       'context': <PloneSite at /Journal>,
       'default': <object object at 0xb7c45528>,
       'here': <PloneSite at /Journal>,
       'loop': {},
       'nothing': None,
       'options': {'args': (), 'viewlets': []},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xdb7fd6c>,
       'request': <HTTPRequest, URL=http://localhost:8008/[…]/prefs_install_products_form>,
       'root': <Application at >,
       'template': <ImplicitAcquirerWrapper object at 0xdb7cc8c>,
       'traverse_subpath': [],
       'user': <PloneUser 'smerten'>,
       'view': <Products.Five.viewlet.manager.<ViewletManager providing IHtmlHeadStyles> object at 0xdb7ceec>,
       'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0xdb7fe0c>}

    * Module zope.tales.expressions, line 217, in __call__
    * Module Products.PageTemplates.Expressions, line 163, in _eval
    * Module Products.PageTemplates.Expressions, line 125, in render
    * Module Products.ResourceRegistries.browser.kss, line 22, in kineticstylesheets
    * Module Products.ResourceRegistries.tools.BaseRegistry, line 828, in getEvaluatedResources
    * Module Products.ResourceRegistries.tools.BaseRegistry, line 509, in evaluateExpression
      __traceback_info__: (<PloneSite at /Journal>, <PloneSite at /Journal>, <PloneSite at /Journal>, <Products.CMFCore.Expression.Expression object at 0xd49f9ec>)
    * Module Products.CMFCore.Expression, line 48, in __call__
    * Module zope.tales.expressions, line 217, in __call__
    * Module Products.PageTemplates.Expressions, line 155, in _eval
    * Module zope.tales.expressions, line 124, in _eval
    * Module Products.PageTemplates.Expressions, line 82, in boboAwareZopeTraverse
    * Module OFS.Traversable, line 301, in restrictedTraverse
    * Module OFS.Traversable, line 284, in unrestrictedTraverse
      __traceback_info__: ([], 'portal_notification')

KeyError: 'portal_notification' (Also, the following error occurred while attempting to render the standard error message, please see the event log for full details: 'portal_notification')

Troubleshooting Suggestions

    * The URL may be incorrect.
    * The parameters passed to this resource may be incorrect.
    * A resource that this resource relies on may be encountering an error.

For more detailed information about the error, please refer to the error log.

If the error persists please contact the site maintainer. Thank you for your patience.
Added by Damien Baty on Dec 29, 2010 02:09 PM
Issue state: UnconfirmedResolved
Responsible manager: (UNASSIGNED)dbaty
Target release: None2.1
My apologies for this very late answer. Hopefully, you have found a solution since May 2009...

Anyway, yes, there was a bug if you uninstalled CMFNotification and still add the subscription portlet added somewhere. I have just fixed this bug on the trunk of the product (which will be released under 2.2 in a few days if all goes well).

For the record, one can work around this bug by going to the portlet management interface (by appending "@@manage-portlets" to the URL of the root of the portal) and removing the "subscription portlet".

No responses can be added.