[ZODB-Dev] RelStorage, history-free, MySQL - errors

Chris Withers chris at simplistix.co.uk
Fri Jan 28 07:10:06 EST 2011


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


More information about the ZODB-Dev mailing list