[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