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

Shane Hathaway shane at hathawaymix.org
Wed Jan 26 17:38:55 EST 2011


On 01/26/2011 03:21 PM, Chris Withers wrote:
>> Well, my case matches that case pretty exactly...
>>
>> MySQL 5.1, RelStorage 1.4.0...
>> Anton, were you using a history-free storage?
>
> My guess is not.
>
> Shane, I went to try your suggestion:
>> If you're sure you have found all of the corruption, you can do this
>> (with all app servers shut down) to re-create the current_object table:
>>
>> delete from current_object;
>> insert into current_object (zoid, tid)
>>       select zoid, max(tid) from object_state;
>
> ...but of course, history-free storages have no current_object table.

Indeed, which is why I think your issue could be quite different from 
Anton's.

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.  If 
you and Anton could check all your logs and database integrity, that 
would save me a lot of time.

FWIW, RelStorage has extensive tests of packing, including stress tests 
that write to the database while packing.  I run those tests 
automatically using Buildbot on several platforms and with several 
combinations of ZODB and SQL database versions.  None of the pack tests 
are failing on any platform, with any version of ZODB or any SQL 
database.  If there is a bug, then the next step is to add a test that 
exercises the bug.

Shane


More information about the ZODB-Dev mailing list