Comment 3 for bug 1064565

Revision history for this message
Peter Beaman (pbeaman) wrote : Re: [Bug 1064565] Re: Accumulator state sometimes missing from checkpoint

Correct! And verified by test. The issue is that the _checkpointRef
field of AccumulatorRef is not treated transactionally.

On Tue, Oct 9, 2012 at 5:57 PM, Nathan Williams
<email address hidden> wrote:
> >From your elaboration, it doesn't even need a sequencer:
>
> txn.begin()
> accum.update()
> checkpoint()
> txn.commit()
> txn.end()
> copyback()
> restart()
>
> Because the checkpointed snapshot does not include the delta and it is
> lost upon restart. Right?
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1064565
>
> Title:
> Accumulator state sometimes missing from checkpoint
>
> Status in Akiban Persistit:
> Confirmed
>
> Bug description:
> The state of an Accumulator is sometimes incorrect after shutting down
> and restarting Persistit and as a result an application can read a
> count or value that is inconsistent with the history of committed
> transactions.
>
> The bug mechanism is a race between the
> CheckpointManager#createCheckpoint method and the Accumulator#update
> method in which an update which occurs in a transaction that starts
> immediately after the checkpoint begins its transaction can be lost.
> The probability of failure is low but may be increased by intense I/O
> activity.
>
> This is a data loss error and is therefore critical.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/akiban-persistit/+bug/1064565/+subscriptions