Skip to content

Commit 2d09654

Browse files
committed
kvnemesis: add TestKVNemesisMultiNode_BufferedWritesNoPipelining
This new kvnemesis test is aimed at stressing the lock reliability features more while working around a known bug in those features when used in conjunction with pipelining. Epic: none Release note: None
1 parent 9963ba7 commit 2d09654

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

pkg/kv/kvnemesis/kvnemesis_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,33 @@ func TestKVNemesisMultiNode_BufferedWrites(t *testing.T) {
361361
})
362362
}
363363

364+
// TestKVNemesisMultiNode_BufferedWritesNoPipelining turns on buffered
365+
// writes and turns off write pipelining. Turning off write pipelining
366+
// allows us to test the lock reliability features even without a fix
367+
// for #145458.
368+
func TestKVNemesisMultiNode_BufferedWritesNoPipelining(t *testing.T) {
369+
defer leaktest.AfterTest(t)()
370+
defer log.Scope(t).Close(t)
371+
372+
testKVNemesisImpl(t, kvnemesisTestCfg{
373+
numNodes: 3,
374+
numSteps: defaultNumSteps,
375+
concurrency: 5,
376+
seedOverride: 0,
377+
invalidLeaseAppliedIndexProb: 0.2,
378+
injectReproposalErrorProb: 0.2,
379+
assertRaftApply: true,
380+
bufferedWriteProb: 0.70,
381+
testSettings: func(ctx context.Context, st *cluster.Settings) {
382+
kvcoord.BufferedWritesEnabled.Override(ctx, &st.SV, true)
383+
kvcoord.PipelinedWritesEnabled.Override(ctx, &st.SV, false)
384+
concurrency.UnreplicatedLockReliabilityLeaseTransfer.Override(ctx, &st.SV, true)
385+
concurrency.UnreplicatedLockReliabilityMerge.Override(ctx, &st.SV, true)
386+
concurrency.UnreplicatedLockReliabilitySplit.Override(ctx, &st.SV, true)
387+
},
388+
})
389+
}
390+
364391
func TestKVNemesisMultiNode(t *testing.T) {
365392
defer leaktest.AfterTest(t)()
366393
defer log.Scope(t).Close(t)

0 commit comments

Comments
 (0)