Details
-
Bug
-
Resolution: Fixed
-
Major
-
Cheshire-Cat
-
Triaged
-
1
-
No
Description
The issue here is that we are comparing ctx->max_purge_seqno to seqno which is incorrect. We should actually be comparing if seqno <= ctx->highCompletedSeqno. This means that any prepare we see with a seqno greater than anything we have already purged will be purged.
// We can remove any prepares that have been completed. This works
|
// because we send Mutations instead of Commits when streaming from
|
// Disk so we do not need to send a Prepare message to keep things
|
// consistent on a replica.
|
if (magmakv::isPrepared(metaSlice)) {
|
if (cbCtx.ctx->max_purged_seq < seqno) {
|
cbCtx.ctx->stats.preparesPurged++;
|
return true;
|
}
|
}
|