Skip to content

2.27.0.0-b64

@ttyusupov ttyusupov tagged this 06 May 14:40
Summary:
As a part of applying SNAPSHOT_OP (in observed scenario it was delete snapshot operation), yugabyte-db updates flushed frontier in RocksDB manifest file by calling `Tablet::ModifyFlushedFrontier` inside `SnapshotOperation::DoReplicated` function. But at that time although previous write operations have been applied to the RocksDB instance, they might not have been flushed to the SST file yet. And if tserver is crashed at this moment this tablet peer can lose the data.

Fixed this by updating `Tablet::ModifyFlushedFrontier` to first synchronously flush both regular and intents DB and only then update flushed frontier inside manifest file.
Added SnapshotTest.CrashAfterFlushedFrontierSaved unit-test that covers the fixed issue.
Jira: DB-16331

Test Plan: SnapshotTest.CrashAfterFlushedFrontierSaved

Reviewers: sergei, arybochkin

Reviewed By: sergei, arybochkin

Subscribers: ybase

Tags: #jenkins-ready

Differential Revision: https://phorge.dev.yugabyte.com/D43624
Assets 2
Loading