[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