[ZODB-Dev] "zeoLoad() raised exception" for a TemporaryStorage in a
ZEO/Zope cluster
Jan-Wijbrand Kolman
jw at infrae.com
Tue Jul 15 13:27:38 EDT 2003
Hello,
I hope to address the following questions to the right list and have
not been answered already - I couldn't find any in the list's archives
so far...
In my current ZEO setup, the ZSS zeoLoad() raises an KeyError (see
traceback below) on first connect from ZCS to the ZSS. The weird thing
is, it only raises the error on this *first* connect. So when I follow
this scenario:
1) start ZSS; no errors reported, both storages are ready to be served
(see also StorageConfig.py I use below).
2) start first ZCS; no errors on the ZCS, but I get afformentioned
traceback on the ZSS (see traceback below, where the KeyError is
related to this TemporaryStorage), after which the messages seem to
indicate that the ZCS connected to both storages served just fine anyway.
3) start second ZCS; no errors reported on the ZCS, no errors on the
ZSS, just the messages that also this client connected just fine.
4) close down both ZCSs, but *not* the ZSS.
5) start first ZCS again, and now *no* errors reported on the ZSS. Nor
when I start the second ZCS...
BTW, after step 3, the ZEO cluster works correctly AFAICT.
Questions:
Am I doing something wrong here? Is this a bug somewhere? Should I
care about this KeyError at all?
Well, I hope someone can help me on this matter. TIA!
regards,
jw
Traceback on ZSS:
------
2003-07-15T11:52:38 INFO(0) zrpc-conn:192.168.1.25:46263 zeoLoad()
raised exception:
Traceback (innermost last):
File
/home/infrae/__Cluster/zeo2/src/lib/python/ZEO/zrpc/connection.py,
line 234, in handle_request
File
/home/infrae/__Cluster/zeo2/src/lib/python/ZEO/StorageServer.py, line
343, in zeoLoad
File
/home/infrae/__Cluster/zeo2/src/lib/python/Products/TemporaryFolder/TemporaryStorage.py,
line 94, in load
(Object: TemporaryStorage)
KeyError:
------
StorageConfig.py for ZSS:
import os
from ZODB import DB
from ZODB.FileStorage import FileStorage
from Products.TemporaryFolder.TemporaryStorage import TemporaryStorage
class CustomTemporaryStorage(TemporaryStorage):
# Subclassed since:
# ZEO expects a storage to implement this method.
# ZODB3.1.2 does not implement this in BaseStorage yet,
# however ZODB3.2b2 does so we can rid of this when we
# start using ZODB3.2
def supportsTransactionalUndo(self): return 0
mainStorage = FileStorage('/path/to/var/Data.fs',)
tempStorage = CustomTemporaryStorage()
--
Jan-Wijbrand Kolman
jw at infrae.com
More information about the ZODB-Dev
mailing list