[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