[ZODB-Dev] 3.2.1b1 with POSKeyError and ConflictError

Jeremy Hylton jeremy at zope.com
Fri May 16 21:27:58 EDT 2003


On Fri, 2003-05-16 at 13:25, Nicholas Henke wrote:
> On Fri, 2003-05-16 at 11:48, Jeremy Hylton wrote:
> > This is surprising, because pack should not change the current revision
> > of any object.  If oid was XXX before pack, it should not be YYY after
> > the pack.  If you can help dig into this, it would be helpful to get an
> > fsdump of the storage before and after the pack.  Then we can examine it
> > manually.  I'd be interested to know if XXX was current at the pack time
> > and whether YYY existed before the pack.
> 
> Ok -- start the fun :) I wrapped my db classes with ZODB.fsdump.fsdump
> before and after the pack. NOTE: I do not lock the database while
> packing -- is that a problem ? Attached is the fsdump files from before
> and after packing. The timestamp is the int(time.time()).

This could be the problem.  Yesterday we discovered that the new pack
implementation did not do the correct locking, which can lead to
corruption when one thread is committing a transaction while another
thread packs.  Does that describe your application?  If so, could you
try the new pack that I'm about to check in?

Jeremy





More information about the ZODB-Dev mailing list