[ZODB-Dev] Errors running a Stress Test
Brandon Ehle
azverkan at yahoo.com
Wed Mar 17 22:38:27 EST 2004
Updated with your the latest changes and I confirm that those two pack
exceptions are gone.
Upon a quick run with that update, here the errors I'm still seeing.
*****
This one which is loosely related to the other two pack exceptions and
could be argued as a client side bug.
Traceback (most recent call last):
File "stress.py", line 78, in ?
db.pack()
g File "C:\Python23\Lib\site-packages\ZODB\DB.py", line 581, in pack
self._storage.pack(t, referencesf)
File "C:\Python23\Lib\site-packages\ZEO\ClientStorage.py", line 853, in
pack
return self._server.pack(t, wait)
File "C:\Python23\Lib\site-packages\ZEO\ServerStub.py", line 161, in pack
self.rpc.call('pack', t, wait)
File "C:\Python23\Lib\site-packages\ZEO\zrpc\connection.py", line 374,
in call
raise inst # error raised by server
FileStorageError: Already packing
*****
I'm seeing this one for the first time (perhaps it was just lost in the
volume before).
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Python23\lib\threading.py", line 436, in __bootstrap
self.run()
File "C:\Python23\lib\threading.py", line 416, in run
self.__target(*self.__args, **self.__kwargs)
File "stress.py", line 42, in hammer_the_db
test[random.choice(keys)] = "hi"
File "C:\Python23\Lib\site-packages\ZODB\Connection.py", line 672, in
setstate
self._setstate(obj)
File "C:\Python23\Lib\site-packages\ZODB\Connection.py", line 722, in
_setstate
self._load_before_or_conflict(obj)
File "C:\Python23\Lib\site-packages\ZODB\Connection.py", line 731, in
_load_before_or_conflict
if not (self._mvcc and self._setstate_noncurrent(obj)):
File "C:\Python23\Lib\site-packages\ZODB\Connection.py", line 743, in
_setstate_noncurrent
t = self._storage.loadBefore(obj._p_oid, self._txn_time)
File "C:\Python23\Lib\site-packages\ZEO\ClientStorage.py", line 774, in
loadBefore
t = self._cache.loadBefore(oid, tid)
File "C:\Python23\Lib\site-packages\ZEO\cache.py", line 207, in loadBefore
return o.data, o.start_tid, o.end_tid
AttributeError: 'NoneType' object has no attribute 'data'
*****
The above error was accompanied by one of these for each thread until all
threads exited.
Exception in thread Thread-5:
Traceback (most recent call last):
File "C:\Python23\lib\threading.py", line 436, in __bootstrap
self.run()
File "C:\Python23\lib\threading.py", line 416, in run
self.__target(*self.__args, **self.__kwargs)
File "stress.py", line 42, in hammer_the_db
test[random.choice(keys)] = "hi"
File "C:\Python23\Lib\site-packages\ZODB\Connection.py", line 672, in
setstate
self._setstate(obj)
File "C:\Python23\Lib\site-packages\ZODB\Connection.py", line 707, in
_setstate
p, serial = self._storage.load(obj._p_oid, self._version)
File "C:\Python23\Lib\site-packages\ZEO\ClientStorage.py", line 734, in
load
return self.loadEx(oid, version)[:2]
File "C:\Python23\Lib\site-packages\ZEO\ClientStorage.py", line 762, in
loadEx
self._cache.store(oid, ver, tid, None, data)
File "C:\Python23\Lib\site-packages\ZEO\cache.py", line 274, in store
self.fc.add(o)
File "C:\Python23\Lib\site-packages\ZEO\cache.py", line 779, in add
available = self._makeroom(size)
File "C:\Python23\Lib\site-packages\ZEO\cache.py", line 723, in _makeroom
size, e = self.filemap.pop(ofs)
KeyError: 76906
*****
After getting the above error, I kept getting this on startup until I
deleted the client cache file. Are we supposed to wrap
ZODB.config.databaseFromURL() calls with ConflictError retries?
Traceback (most recent call last):
File "stress.py", line 19, in ?
db = ZODB.config.databaseFromURL('client.conf')
File "C:\Python23\Lib\site-packages\ZODB\config.py", line 52, in
databaseFromURL
return databaseFromConfig(config.database)
File "C:\Python23\Lib\site-packages\ZODB\config.py", line 55, in
databaseFromConfig
return section.open()
File "C:\Python23\Lib\site-packages\ZODB\config.py", line 103, in open
version_cache_size=section.version_cache_size)
File "C:\Python23\Lib\site-packages\ZODB\DB.py", line 139, in __init__
storage.tpc_vote(t)
File "C:\Python23\Lib\site-packages\ZEO\ClientStorage.py", line 881, in
tpc_vote
return self._check_serials()
File "C:\Python23\Lib\site-packages\ZEO\ClientStorage.py", line 865, in
_check_serials
raise s
ZODB.POSException.ConflictError: database conflict error (oid
0000000000000000, class persistent.mapping.PersistentMapping, serial was
0353ca15d1942377, now None)
*****
And I still get lots of these server side.
2004-03-17T19:28:15 ERROR(200) Conflict Resolution Unexpected error
Traceback (most recent call last):
File "C:\Python23\Lib\site-packages\ZODB\ConflictResolution.py", line
120, in tryToResolveConflict
old = state(self, oid, oldSerial, prfactory)
File "C:\Python23\Lib\site-packages\ZODB\ConflictResolution.py", line
51, in state
p = p or self.loadSerial(oid, serial)
File "C:\Python23\Lib\site-packages\ZODB\FileStorage\FileStorage.py",
line 587, in loadSerial
raise POSKeyError(oid)
POSKeyError: 0000000000000001
More information about the ZODB-Dev
mailing list