ZEO "extension methods" fail after ZEO restarts?
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ZODB |
Fix Released
|
Low
|
Unassigned |
Bug Description
This is copied from a thread on zodb-dev:
http://
The issue, with detailed repro instructions:
http://
Toby's response from dirstorage-users:
http://
Summary:
- if ZEO ever restarts, the DSToolkit Product can no
longer do its job (forcing the storage into
Snapshot mode) - instead ZEO raises
DisconnectedE
activity proceeds as normal, i.e. Zope is NOT
disconnected from ZEO.
Restarting Zope makes the symptom go away.
- I can reproduce this on Zope 2.7.3
- Toby can NOT reproduce this with Zope 2.6.x
- Toby says "DirectoryStorage is using
ZEO's getExtensionMethods API,
and I supect the problem will be there."
Now, I don't know squat about getExtensionMethods
except what I've learned browsing the ZEO source in
the past few minutes. But here's what I see:
From a brief look, DSToolkit is a very simple
Product. It contains a couple of methods that in turn
invoke ZEO extension methods. Here's an example:
security.
def is_directorysto
if self._v_
storage = self._p_
try:
fn = storage.
except AttributeError:
else:
return self._v_
... which method of the storage is referred to in
BaseDirectorySt
def getExtensionMet
return {'enter_snapshot': None,
}
... which looks fine according to the API in ClientStorage.py; a bit further down in
BaseDirectorySt
def is_directory_
return 1
So, everything in DirectoryStorage and DSToolkit
looks kosher to me; is this a ZEO bug?
affects: | zope2 → zodb |
Changed in zodb: | |
importance: | Medium → Low |
Changed in zodb: | |
status: | Fix Committed → Fix Released |
Googling shows that Toby added the ZODB+ZEO code for getExtensionMethods late 2002. AFAICT, he didn't check in docs or tests for it, just implementation code.
Since I don't know anything about it, and Zope Corp doesn't appear to make use of it, it's hard for me to justify spending work time it.
Best guess is that the problem is shallow, but likely shallower to Toby than to anyone else on the planet.