[ZODB-Dev] RelStorage pack with history-free storage results in POSKeyErrors

Shane Hathaway shane at hathawaymix.org
Wed Jan 26 22:15:45 EST 2011


On 01/26/2011 04:07 PM, Chris Withers wrote:
> On 26/01/2011 22:38, Shane Hathaway wrote:
>> The odd thing is I have seen no reports of pack issues for a long time.
>> Why two at once? I still wonder if there might be no bug at all.
>
> I'm afraid my wondering is on the other side of that argument ;-)
>
>> If you
>> and Anton could check all your logs and database integrity, that would
>> save me a lot of time.
>
> Okay, so I'll do:
>
> - e2fsck -f
> - mysqlcheck -c
>
> Anything else?
>
> What logs should I hunt through and what kind of things am I looking
> for?

/var/log/messages and the like.  Look for kernel-level errors such as 
block I/O errors, "oops", and system panics.  Any such errors have a 
chance of corrupting files.  We need to rule out errors at the kernel or 
below.

>> FWIW, RelStorage has extensive tests of packing, including stress tests
>> that write to the database while packing.
>
> How can I run these?

If you don't already have "bin/test" in your buildout, add a section 
that creates it.  Here is an example based on the buildout.cfg in 
RelStorage:

[buildout]
parts = test

[test]
recipe = zc.recipe.testrunner
eggs = relstorage
        MySQL-python
        ZODB3 [test]
        zope.testrunner

Next, follow the directions in relstorage/tests/README.txt to create the 
4 test databases.  Then run "bin/test -p -m relstorage".  All tests 
should pass.

Shane


More information about the ZODB-Dev mailing list