Have retry handle component registration errors on template renderers

Bug #987422 reported by Paul Everitt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KARL3
Won't Fix
Undecided
Chris Rossi

Bug Description

File
"/srv/osfkarl/production/42/eggs/zope.component-3.6.0-py2.6.egg/zope/component/registry.py",
line 153, in registeredUtilities ) in
self._utility_registrations.iteritems(): RuntimeError: dictionary changed
size during iteration

Basically, Pyramid uses the registry to cache renderers. The registry is
not, nor is it intended to be thread safe. The authors of zope.component
never intended that the state of the registry would be mutated after initial
startup. Once in a blue moon, you'll hit this and get the exception below.
 It's a concurrency error and can only occur of two threads are
simultaneously trying to use the same, not yet cached in this process
template. Once an application is up and its templates have been exercised,
and therefore cached, this won't happen again for the life of that process.

I pointed this one out to Chris M about a year or so ago. I don't remember
when exactly. He acknowledged it and then shrugged it off. I think he
thinks this comes up so seldom that it's not worth redoing how templates are
cached in Pyramid to use a threadsafe data structure.

We could have retry catch this one, since it should resolve itself by the next request

Tags: operations
Changed in karl3:
milestone: m103 → m108
Changed in karl3:
milestone: m108 → m106
Changed in karl3:
milestone: m106 → m108
Changed in karl3:
milestone: m108 → m114
Changed in karl3:
milestone: m114 → m110
Changed in karl3:
milestone: m110 → m111
Changed in karl3:
milestone: m111 → m113
Changed in karl3:
milestone: m113 → m115
Changed in karl3:
milestone: m115 → m116
Changed in karl3:
milestone: m116 → m118
JimPGlenn (jpglenn09)
Changed in karl3:
milestone: m118 → m119
Revision history for this message
Paul Everitt (paul-agendaless) wrote :

We need to slow everything down until we get clarity on the Q4 budget.

Changed in karl3:
milestone: m119 → m120
Changed in karl3:
milestone: m120 → m123
Changed in karl3:
milestone: m123 → m124
Changed in karl3:
importance: Low → Undecided
milestone: m124 → m999
Changed in karl3:
status: New → Won't Fix
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.