Skip to content

Commit bed86e7

Browse files
committed
kvserver: use both engines in replica state assert
Epic: none Release note: none
1 parent 8175ae2 commit bed86e7

File tree

7 files changed

+17
-17
lines changed

7 files changed

+17
-17
lines changed

pkg/kv/kvserver/client_merge_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5499,7 +5499,7 @@ func TestStoreMergeGCHint(t *testing.T) {
54995499
require.Greater(t, gcHint.LatestRangeDeleteTimestamp.WallTime, beforeSecondDel,
55005500
"highest timestamp wasn't picked up")
55015501
}
5502-
repl.AssertState(ctx, store.TODOEngine())
5502+
repl.AssertState(ctx, store.StateEngine(), store.LogEngine())
55035503
})
55045504
}
55055505
}

pkg/kv/kvserver/client_split_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2389,7 +2389,7 @@ func TestStoreSplitGCThreshold(t *testing.T) {
23892389
t.Fatalf("expected RHS's GCThreshold is equal to %v, but got %v", specifiedGCThreshold, gcThreshold)
23902390
}
23912391

2392-
repl.AssertState(ctx, store.TODOEngine())
2392+
repl.AssertState(ctx, store.StateEngine(), store.LogEngine())
23932393
}
23942394

23952395
func TestStoreSplitGCHint(t *testing.T) {
@@ -2451,7 +2451,7 @@ func TestStoreSplitGCHint(t *testing.T) {
24512451
gcHint = repl.GetGCHint()
24522452
require.False(t, gcHint.IsEmpty(), "GC hint is empty after range delete")
24532453

2454-
repl.AssertState(ctx, store.TODOEngine())
2454+
repl.AssertState(ctx, store.StateEngine(), store.LogEngine())
24552455
}
24562456

24572457
// TestStoreRangeSplitRaceUninitializedRHS reproduces #7600 (before it was

pkg/kv/kvserver/helpers_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/batcheval/result"
2727
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/intentresolver"
2828
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverpb"
29+
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
2930
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/liveness"
3031
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/liveness/livenesspb"
3132
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/logstore"
@@ -317,12 +318,14 @@ func (r *Replica) Breaker() *circuit.Breaker {
317318
return r.breaker.wrapped
318319
}
319320

320-
func (r *Replica) AssertState(ctx context.Context, reader storage.Reader) {
321+
func (r *Replica) AssertState(
322+
ctx context.Context, stateRO kvstorage.StateRO, raftRO kvstorage.RaftRO,
323+
) {
321324
r.raftMu.Lock()
322325
defer r.raftMu.Unlock()
323326
r.mu.RLock()
324327
defer r.mu.RUnlock()
325-
r.assertStateRaftMuLockedReplicaMuRLocked(ctx, reader)
328+
r.assertStateRaftMuLockedReplicaMuRLocked(ctx, stateRO, raftRO)
326329
}
327330

328331
func (r *Replica) RaftLock() {

pkg/kv/kvserver/mvcc_gc_queue_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,11 +1236,9 @@ func TestMVCCGCQueueTransactionTable(t *testing.T) {
12361236
"but only %d are left", exp, count)
12371237
}
12381238

1239-
batch := tc.engine.NewSnapshot()
1240-
defer batch.Close()
12411239
tc.repl.raftMu.Lock()
12421240
tc.repl.mu.RLock()
1243-
tc.repl.assertStateRaftMuLockedReplicaMuRLocked(ctx, batch) // check that in-mem and on-disk state were updated
1241+
tc.repl.assertStateRaftMuLockedReplicaMuRLocked(ctx, tc.stateEng, tc.raftEng) // check that in-mem and on-disk state were updated
12441242
tc.repl.mu.RUnlock()
12451243
tc.repl.raftMu.Unlock()
12461244
}

pkg/kv/kvserver/replica.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1973,18 +1973,18 @@ func (r *Replica) State(ctx context.Context) kvserverpb.RangeInfo {
19731973
// to check that the in-memory and on-disk states of the Replica are congruent.
19741974
// Requires that r.raftMu is locked and r.mu is read locked.
19751975
func (r *Replica) assertStateRaftMuLockedReplicaMuRLocked(
1976-
ctx context.Context, reader storage.Reader,
1976+
ctx context.Context, stateRO kvstorage.StateRO, raftRO kvstorage.RaftRO,
19771977
) {
19781978
if ts := r.shMu.state.TruncatedState; ts != nil {
19791979
log.KvExec.Fatalf(ctx, "non-empty RaftTruncatedState in ReplicaState: %+v", ts)
1980-
} else if loaded, err := r.raftMu.stateLoader.LoadRaftTruncatedState(ctx, reader); err != nil {
1980+
} else if loaded, err := r.raftMu.stateLoader.LoadRaftTruncatedState(ctx, raftRO); err != nil {
19811981
log.KvExec.Fatalf(ctx, "%s", err)
19821982
} else if ts := r.asLogStorage().shMu.trunc; loaded != ts {
19831983
log.KvExec.Fatalf(ctx, "on-disk and in-memory RaftTruncatedState diverged: %s",
19841984
redact.Safe(pretty.Diff(loaded, ts)))
19851985
}
19861986

1987-
diskState, err := r.raftMu.stateLoader.Load(ctx, reader, r.shMu.state.Desc)
1987+
diskState, err := r.raftMu.stateLoader.Load(ctx, stateRO, r.shMu.state.Desc)
19881988
if err != nil {
19891989
log.KvExec.Fatalf(ctx, "%v", err)
19901990
}
@@ -2041,7 +2041,7 @@ func (r *Replica) assertStateRaftMuLockedReplicaMuRLocked(
20412041
log.KvExec.Fatalf(ctx, "replica's replicaID %d diverges from descriptor %+v", r.replicaID, r.shMu.state.Desc)
20422042
}
20432043
}
2044-
diskReplID, err := r.raftMu.stateLoader.LoadRaftReplicaID(ctx, reader)
2044+
diskReplID, err := r.raftMu.stateLoader.LoadRaftReplicaID(ctx, stateRO)
20452045
if err != nil {
20462046
log.KvExec.Fatalf(ctx, "%s", err)
20472047
}

pkg/kv/kvserver/replica_raft.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,9 +1283,8 @@ func (r *Replica) handleRaftReadyRaftMuLocked(
12831283

12841284
if shouldAssert {
12851285
sm.r.mu.RLock()
1286-
// TODO(sep-raft-log): either check only statemachine invariants or
1287-
// pass both engines in.
1288-
sm.r.assertStateRaftMuLockedReplicaMuRLocked(ctx, sm.r.store.TODOEngine())
1286+
sm.r.assertStateRaftMuLockedReplicaMuRLocked(
1287+
ctx, sm.r.store.StateEngine(), sm.r.store.LogEngine())
12891288
sm.r.mu.RUnlock()
12901289
}
12911290

pkg/kv/kvserver/replica_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ func (tc *testContext) addBogusReplicaToRangeDesc(
311311
tc.repl.raftMu.Lock()
312312
tc.repl.setDescRaftMuLocked(ctx, &newDesc)
313313
tc.repl.mu.RLock()
314-
tc.repl.assertStateRaftMuLockedReplicaMuRLocked(ctx, tc.engine)
314+
tc.repl.assertStateRaftMuLockedReplicaMuRLocked(ctx, tc.stateEng, tc.raftEng)
315315
tc.repl.mu.RUnlock()
316316
tc.repl.raftMu.Unlock()
317317
return newReplica, nil
@@ -10267,7 +10267,7 @@ func TestReplicaRecomputeStats(t *testing.T) {
1026710267
disturbMS.ContainsEstimates = 0
1026810268
ms.Add(*disturbMS)
1026910269
err := repl.raftMu.stateLoader.SetMVCCStats(ctx, tc.stateEng, ms)
10270-
repl.assertStateRaftMuLockedReplicaMuRLocked(ctx, tc.stateEng)
10270+
repl.assertStateRaftMuLockedReplicaMuRLocked(ctx, tc.stateEng, tc.raftEng)
1027110271
repl.mu.Unlock()
1027210272
repl.raftMu.Unlock()
1027310273

0 commit comments

Comments
 (0)