Hi Shane, Okay, so here's the test harness:
svn co https://secure.simplistix.co.uk/svn/relstorage_pack -r 4594 It uses the normal RelStorage test users and databases. After running the buildout, I do each of the following in their own terminal: bin/generate --zap bin/zodbpack pack.conf On 28/01/2011 10:26, Shane Hathaway wrote: >> I'm going to have a go at knocking up a small batch script that you can >> run to reproduce the issue, but there's definitely an issue here when >> packing while changing lots of data in a ZODB. > > I look forward to your results! I initially had the file size set to 200Kb and everything seemed to be behaving as it should. I dropped the file size to 1kb and tried again, getting the following after a short time: Traceback (most recent call last): File "bin/generate", line 100, in <module> generate.generate('/home/zope/relstorage_pack/zodb.conf') File "/home/zope/relstorage_pack/generate.py", line 62, in generate app.manage_delObjects([id]) File "/var/buildout-eggs/Zope2-2.12.7-py2.6-linux-i686.egg/OFS/ObjectManager.py", line 536, in manage_delObjects if v.wl_isLocked(): File "/var/buildout-eggs/ZODB3-3.9.6-py2.6-linux-i686.egg/ZODB/Connection.py", line 847, in setstate self._setstate(obj) File "/var/buildout-eggs/ZODB3-3.9.6-py2.6-linux-i686.egg/ZODB/Connection.py", line 897, in _setstate p, serial = self._storage.load(obj._p_oid, '') File "/var/buildout-eggs/RelStorage-1.4.0-py2.6.egg/relstorage/storage.py", line 448, in load state, tid_int = cache.load(cursor, oid_int) File "/var/buildout-eggs/RelStorage-1.4.0-py2.6.egg/relstorage/cache.py", line 234, in load self._check_tid_after_load(oid_int, actual_tid_int, tid_int) File "/var/buildout-eggs/RelStorage-1.4.0-py2.6.egg/relstorage/cache.py", line 187, in _check_tid_after_load 'thread_ident': thread.get_ident(), AssertionError: Detected an inconsistency between the RelStorage cache and the database while loading an object using the delta_after0 dict. Please verify the database is configured for ACID compliance and that all clients are using the same commit lock. (oid_int=2509, expect_tid_int=255550891637739451L, actual_tid_int=None, current_tid=255550892026220390L, cp0=255550891176006912L, cp1=255550891176006912L, len(delta_after0)=2376, len(delta_after1)=0, pid=6087, thread_ident=-1219049280) Not the POSKeyError I'm having trouble with, but looks like you might want to know ;-) Could this have anything to do with the POSKeyErrors? cheers, Chris -- Simplistix - Content Management, Batch Processing & Python Consulting - http://www.simplistix.co.uk _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev