Skip to content

Commit 4fd947d

Browse files
committed
kvnemesis: disable read transforms in buffered writes variants
We have some known issues with read transforms. Read transforms are disabled by default and only allowed in test builds for 25.3. To avoid test noise because of these known issues, we disable read transformations in the buffered writes KVNemesis tests. Epic: none Release note: None
1 parent 26d912c commit 4fd947d

File tree

4 files changed

+17
-9
lines changed

4 files changed

+17
-9
lines changed

pkg/kv/kvclient/kvcoord/txn_interceptor_write_buffer.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var BufferedWritesEnabled = settings.RegisterBoolSetting(
4646

4747
var unsupportedInProductionBuildErr = errors.New("this option is not supported in production builds")
4848

49-
var bufferedWritesScanTransformEnabled = settings.RegisterBoolSetting(
49+
var BufferedWritesScanTransformEnabled = settings.RegisterBoolSetting(
5050
settings.ApplicationLevel,
5151
"kv.transaction.write_buffering.transformations.scans.enabled",
5252
"if enabled, locking scans and reverse scans with replicated durability are transformed to unreplicated durability",
@@ -59,7 +59,7 @@ var bufferedWritesScanTransformEnabled = settings.RegisterBoolSetting(
5959
}),
6060
)
6161

62-
var bufferedWritesGetTransformEnabled = settings.RegisterBoolSetting(
62+
var BufferedWritesGetTransformEnabled = settings.RegisterBoolSetting(
6363
settings.ApplicationLevel,
6464
"kv.transaction.write_buffering.transformations.get.enabled",
6565
"if enabled, locking get requests with replicated durability are transformed to unreplicated durability",
@@ -294,8 +294,8 @@ func (twb *txnWriteBuffer) SendLocked(
294294
// We check if scan transforms are enabled once and use that answer until the
295295
// end of SendLocked.
296296
cfg := transformConfig{
297-
transformScans: bufferedWritesScanTransformEnabled.Get(&twb.st.SV),
298-
transformGets: bufferedWritesGetTransformEnabled.Get(&twb.st.SV),
297+
transformScans: BufferedWritesScanTransformEnabled.Get(&twb.st.SV),
298+
transformGets: BufferedWritesGetTransformEnabled.Get(&twb.st.SV),
299299
}
300300

301301
if twb.batchRequiresFlush(ctx, ba, cfg) {

pkg/kv/kvclient/kvcoord/txn_interceptor_write_buffer_client_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func TestTxnCoordSenderWriteBufferingDisablesPipelining(t *testing.T) {
6161
// buffered.
6262
require.NoError(t, db.Put(ctx, "test-key-a", "hello"))
6363

64-
bufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
64+
BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
6565
BufferedWritesMaxBufferSize.Override(ctx, &st.SV, defaultBufferSize)
6666

6767
// Without write buffering
@@ -144,7 +144,7 @@ func TestTxnWriteBufferFlushedWithMaxKeysOnBatch(t *testing.T) {
144144

145145
// The bug requires that we transform Gets. Here, we disable it to prove that
146146
// this tets passes.
147-
bufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
147+
BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
148148

149149
// The locks need to actually be taken, so let's write to every key we are
150150
// going to lock.

pkg/kv/kvclient/kvcoord/txn_interceptor_write_buffer_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ func makeMockTxnWriteBuffer(
3131
) (txnWriteBuffer, *mockLockedSender, *cluster.Settings) {
3232
metrics := MakeTxnMetrics(time.Hour)
3333
st := cluster.MakeClusterSettings()
34-
bufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
35-
bufferedWritesGetTransformEnabled.Override(ctx, &st.SV, true)
34+
BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
35+
BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, true)
3636
BufferedWritesMaxBufferSize.Override(ctx, &st.SV, defaultBufferSize)
3737

3838
mockSender := &mockLockedSender{}
@@ -1733,7 +1733,7 @@ func TestTxnWriteBufferLimitsSizeOfScans(t *testing.T) {
17331733
txn := makeTxnProto()
17341734
txn.Sequence = 10
17351735

1736-
bufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
1736+
BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
17371737
BufferedWritesMaxBufferSize.Override(ctx, &st.SV, tc.bufferSize)
17381738

17391739
ba := &kvpb.BatchRequest{Header: kvpb.Header{Txn: &txn}}

pkg/kv/kvnemesis/kvnemesis_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,10 @@ func TestKVNemesisMultiNode_BufferedWrites(t *testing.T) {
347347
bufferedWriteProb: 0.70,
348348
testSettings: func(ctx context.Context, st *cluster.Settings) {
349349
kvcoord.BufferedWritesEnabled.Override(ctx, &st.SV, true)
350+
// Read transforms are disabled on release-25.3 because of known issues
351+
// such as #150239 which are only fixed in 25.4+.
352+
kvcoord.BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
353+
kvcoord.BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
350354
concurrency.UnreplicatedLockReliabilityLeaseTransfer.Override(ctx, &st.SV, true)
351355
concurrency.UnreplicatedLockReliabilityMerge.Override(ctx, &st.SV, true)
352356
concurrency.UnreplicatedLockReliabilitySplit.Override(ctx, &st.SV, true)
@@ -372,6 +376,10 @@ func TestKVNemesisMultiNode_BufferedWritesNoPipelining(t *testing.T) {
372376
testSettings: func(ctx context.Context, st *cluster.Settings) {
373377
kvcoord.BufferedWritesEnabled.Override(ctx, &st.SV, true)
374378
kvcoord.PipelinedWritesEnabled.Override(ctx, &st.SV, false)
379+
// Read transforms are disabled on release-25.3 because of known issues
380+
// such as #150239 which are only fixed in 25.4+.
381+
kvcoord.BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
382+
kvcoord.BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
375383
concurrency.UnreplicatedLockReliabilityLeaseTransfer.Override(ctx, &st.SV, true)
376384
concurrency.UnreplicatedLockReliabilityMerge.Override(ctx, &st.SV, true)
377385
concurrency.UnreplicatedLockReliabilitySplit.Override(ctx, &st.SV, true)

0 commit comments

Comments
 (0)