plonezopezodb

What are the possible causes of a ConnectionStateError?


I'm having trouble with a ConnectionStateError that happens sometimes on a Plone 4.3.8 site.

I can't find the reason why it happens. I get it in many different situations, I'll post a couple tracebacks to show you what I mean.

Loading a portlet page:

2016-08-01T11:38:15 ERROR Zope.SiteErrorLog 1470044295.40.967961803473 https://mysite.it/home-page/two-columns
Traceback (innermost last):
  Module ZPublisher.Publish, line 127, in publish
  Module ZPublisher.BaseRequest, line 607, in traverse
  Module Products.PluggableAuthService.PluggableAuthService, line 244, in validate
  Module Products.PluggableAuthService.PluggableAuthService, line 652, in _extractUserIds
  Module Products.WebServerAuth.plugin, line 131, in authenticateCredentials
  Module ZODB.Connection, line 857, in setstate
ConnectionStateError: Shouldn't load state for 0x184af9 when the connection is closed

Loading a random folder:

2016-08-01T13:04:17 ERROR Zope.SiteErrorLog 1470049457.660.586381895694 https://mysite.it/some/path/folder_tabular_view
Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module Shared.DC.Scripts.Bindings, line 322, in __call__
  Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
  Module Products.CMFCore.FSPageTemplate, line 237, in _exec
  Module Products.CMFCore.FSPageTemplate, line 177, in pt_render
  Module Products.PageTemplates.PageTemplate, line 87, in pt_render
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 93, in __call__
  Module z3c.pt.pagetemplate, line 149, in render
  Module chameleon.zpt.template, line 261, in render
  Module chameleon.template, line 191, in render
  Module chameleon.template, line 171, in render
  Module 3d823c0177a7023e7fe9a133289da7b0.py, line 853, in render
  Module 153d4bce30f6569f92b3bf03cb6d6485.py, line 1060, in render_master
  Module z3c.pt.expressions, line 58, in render_content_provider
  Module zope.viewlet.manager, line 112, in update
  Module zope.viewlet.manager, line 118, in _updateViewlets
  Module plone.app.layout.links.viewlets, line 122, in update
  Module Products.CMFPlone.browser.syndication.utils, line 47, in context_enabled
  Module zope.component.hookable, line 33, in __call__
  Module zope.component.hooks, line 104, in adapter_hook
  Module Products.CMFPlone.browser.syndication.settings, line 23, in __init__
  Module zope.annotation.attribute, line 44, in get
  Module ZODB.Connection, line 857, in setstate
ConnectionStateError: Shouldn't load state for 0x05f568 when the connection is closed

 - Expression: "provider:plone.htmlhead.links"
 - Filename:   ... me/skins/my_plonetheme_custom_templates/main_template.pt
 - Location:   (line 32: col 37)
 - Source:     ... replace="structure provider:plone.htmlhead.links" />
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  repeat: {...} (0)
               template: <ImplicitAcquisitionWrapper folder_tabular_view at 0x7fb4e901b820>
               modules: <instance - at 0x7fb509ba5878>
               here: <ImplicitAcquisitionWrapper i-commisione-consiliare at 0x7fb4e901ba50>
               user: <ImplicitAcquisitionWrapper - at 0x7fb4e901baf0>
               nothing: <NoneType - at 0x937be0>
               container: <ImplicitAcquisitionWrapper i-commisione-consiliare at 0x7fb4e901ba50>
               default: <object - at 0x7fb510fbc520>
               request: <instance - at 0x7fb4ddaafe60>
               wrapped_repeat: <SafeMapping - at 0x7fb4df604520>
               traverse_subpath: <list - at 0x7fb4dfba61b8>
               loop: {...} (0)
               context: <ImplicitAcquisitionWrapper i-commisione-consiliare at 0x7fb4e901ba50>
               translate: <function translate at 0x7fb4de933848>
               root: <ImplicitAcquisitionWrapper Zope at 0x7fb4e8b5a960>
               options: {...} (1)
               target_language: <NoneType - at 0x937be0>

Loading a viewlet:

2016-08-02T22:53:57 ERROR plone.app.viewletmanager rendering of plone.belowcontenttitle in plone.belowcontenttitle.documentbyline fails: Shouldn't load state for 0x1e3183 when the connection is closed

 - Expression: "context/Rights"
 - Filename:   ... 4-py2.7.egg/plone/app/layout/viewlets/document_byline.pt
 - Location:   (line 79: col 33)
 - Source:     ... rights tal:define="rights context/Rights"
                                             ^^^^^^^^^^^^^^
 - Arguments:  repeat: {...} (0)
               template: <ViewPageTemplateFile - at 0x7fb501617990>
               views: <ViewMapper - at 0x7fb4deb88410>
               modules: <instance - at 0x7fb509ba5878>
               args: <tuple - at 0x7fb51109e050>
               here: <ImplicitAcquisitionWrapper notizie at 0x7fb4ea918aa0>
               user: <ImplicitAcquisitionWrapper - at 0x7fb4e8734960>
               nothing: <NoneType - at 0x937be0>
               container: <ImplicitAcquisitionWrapper notizie at 0x7fb4ea918aa0>
               request: <instance - at 0x7fb4f13d37e8>
               wrapped_repeat: <SafeMapping - at 0x7fb4d7edd7e0>
               traverse_subpath: <list - at 0x7fb4de297dd0>
               default: <object - at 0x7fb510fbc520>
               loop: {...} (0)
               context: <ImplicitAcquisitionWrapper notizie at 0x7fb4ea918aa0>
               view: <DocumentBylineViewlet plone.belowcontenttitle.documentbyline at 0x7fb4deb888d0>
               translate: <function translate at 0x7fb4dc1ce320>
               root: <ImplicitAcquisitionWrapper Zope at 0x7fb4dfcd4370>
               options: {...} (0)
               target_language: <NoneType - at 0x937be0>
Traceback (most recent call last):
  File "/opt/cache/buildout/eggs/plone.app.viewletmanager-2.0.9-py2.7.egg/plone/app/viewletmanager/manager.py", line 110, in render
    html.append(viewlet.render())
  File "/opt/cache/buildout/eggs/plone.app.layout-2.3.14-py2.7.egg/plone/app/layout/viewlets/common.py", line 50, in render
    return self.index()
  File "/opt/cache/buildout/eggs/Zope2-2.13.23-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 125, in __call__
    return self.im_func(im_self, *args, **kw)
  File "/opt/cache/buildout/eggs/Zope2-2.13.23-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 59, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  File "/opt/cache/buildout/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/opt/cache/buildout/eggs/five.pt-2.2.3-py2.7.egg/five/pt/engine.py", line 93, in __call__
    return self.template.render(**kwargs)
  File "/opt/cache/buildout/eggs/z3c.pt-2.2.3-py2.7.egg/z3c/pt/pagetemplate.py", line 149, in render
    return base_renderer(**context)
  File "/opt/cache/buildout/eggs/Chameleon-2.24-py2.7.egg/chameleon/zpt/template.py", line 261, in render
    return super(PageTemplate, self).render(**vars)
  File "/opt/cache/buildout/eggs/Chameleon-2.24-py2.7.egg/chameleon/template.py", line 191, in render
    raise_with_traceback(exc, tb)
  File "/opt/cache/buildout/eggs/Chameleon-2.24-py2.7.egg/chameleon/template.py", line 171, in render
    self._render(stream, econtext, rcontext)
  File "c3f6907c0e1b52a047b37fee3042155a.py", line 699, in render
  File "/opt/cache/buildout/eggs/five.pt-2.2.3-py2.7.egg/five/pt/expressions.py", line 161, in __call__
    return base()
  File "/opt/cache/buildout/eggs/Products.Archetypes-1.9.10-py2.7.egg/Products/Archetypes/ClassGen.py", line 56, in generatedAccessor
    return schema[name].get(self, **kw)
  File "/opt/cache/buildout/eggs/wicked-1.1.12-py2.7.egg/wicked/fieldevent/__init__.py", line 29, in render
    notify(renderer)
  File "/opt/cache/buildout/eggs/zope.event-3.5.2-py2.7.egg/zope/event/__init__.py", line 31, in notify
    subscriber(event)
  File "/opt/cache/buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/event.py", line 24, in dispatch
    zope.component.subscribers(event, None)
  File "/opt/cache/buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py", line 136, in subscribers
    return sitemanager.subscribers(objects, interface)
  File "/opt/cache/buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/registry.py", line 321, in subscribers
    return self.adapters.subscribers(objects, provided)
  File "/opt/cache/buildout/eggs/zope.interface-3.6.7-py2.7-linux-x86_64.egg/zope/interface/adapter.py", line 585, in subscribers
    subscription(*objects)
  File "/opt/cache/buildout/eggs/wicked-1.1.12-py2.7.egg/wicked/fieldevent/__init__.py", line 16, in notifyFieldEvent
    event.value = getMultiAdapter((field, event), IFieldValue)
  File "/opt/cache/buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py", line 107, in getMultiAdapter
    adapter = queryMultiAdapter(objects, interface, name, context=context)
  File "/opt/cache/buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py", line 120, in queryMultiAdapter
    return sitemanager.queryMultiAdapter(objects, interface, name, default)
  File "/opt/cache/buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/registry.py", line 238, in queryMultiAdapter
    objects, interface, name, default)
  File "/opt/cache/buildout/eggs/zope.interface-3.6.7-py2.7-linux-x86_64.egg/zope/interface/adapter.py", line 532, in queryMultiAdapter
    result = factory(*objects)
  File "/opt/cache/buildout/eggs/wicked-1.1.12-py2.7.egg/wicked/fieldevent/meta.py", line 78, in field_value
    return _get(field, event.instance, **event.kwargs)
  File "/opt/cache/buildout/eggs/Products.Archetypes-1.9.10-py2.7.egg/Products/Archetypes/Field.py", line 1502, in get
    if not shasattr(value, 'transform'):  # oldBaseUnits have no transform
  File "/opt/cache/buildout/eggs/Products.Archetypes-1.9.10-py2.7.egg/Products/Archetypes/utils.py", line 734, in shasattr
    return getattr(obj, attr, _marker) is not _marker
  File "/opt/cache/buildout/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/Connection.py", line 857, in setstate
    raise ConnectionStateError(msg)
ConnectionStateError: Shouldn't load state for 0x1e3183 when the connection is closed

 - Expression: "context/Rights"
 - Filename:   ... 4-py2.7.egg/plone/app/layout/viewlets/document_byline.pt
 - Location:   (line 79: col 33)
 - Source:     ... rights tal:define="rights context/Rights"
                                             ^^^^^^^^^^^^^^
 - Arguments:  repeat: {...} (0)
               template: <ViewPageTemplateFile - at 0x7fb501617990>
               views: <ViewMapper - at 0x7fb4deb88410>
               modules: <instance - at 0x7fb509ba5878>
               args: <tuple - at 0x7fb51109e050>
               here: <ImplicitAcquisitionWrapper notizie at 0x7fb4ea918aa0>
               user: <ImplicitAcquisitionWrapper - at 0x7fb4e8734960>
               nothing: <NoneType - at 0x937be0>
               container: <ImplicitAcquisitionWrapper notizie at 0x7fb4ea918aa0>
               request: <instance - at 0x7fb4f13d37e8>
               wrapped_repeat: <SafeMapping - at 0x7fb4d7edd7e0>
               traverse_subpath: <list - at 0x7fb4de297dd0>
               default: <object - at 0x7fb510fbc520>
               loop: {...} (0)
               context: <ImplicitAcquisitionWrapper notizie at 0x7fb4ea918aa0>
               view: <DocumentBylineViewlet plone.belowcontenttitle.documentbyline at 0x7fb4deb888d0>
               translate: <function translate at 0x7fb4dc1ce320>
               root: <ImplicitAcquisitionWrapper Zope at 0x7fb4dfcd4370>
               options: {...} (0)
               target_language: <NoneType - at 0x937be0>

I could go with many different examples. I can't seem to find the reason of this, I'm probably missing some information on what can cause the problem.

I will give any extra information needed, feel free to ask :) Thanks!


Solution

  • ConnectionStateError can be generated by more than a kind of issue.

    Sometimes you simply need to restart the client, but I'm sure you already tried this.

    Is also possible you have something wrong on the zeo server (you have one, right?). Check its log and evaluate if it worth a restart.

    More common case: you are using RAMCache from plone.memoize but you are chaching persistent objects. Don't do it.