Skip to content

Commit 8fbbb45

Browse files
committed
kvnemesis: correctly handle errors from DeleteRangeUsingTombstoneOperation
Previously we were initializing the result in the DeleteRangeUsingTombstoneOperation case using the err variable that had been set to nil. Now, we correctly using the Err from the result. While here, I've also re-arranged the code so that the cases are a bit more consistent. Epic: none Release note: None
1 parent 1572ff3 commit 8fbbb45

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

pkg/kv/kvnemesis/applier.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -640,18 +640,17 @@ func applyBatchOp(
640640
}
641641
subO.Result.ResumeSpan = res.ResumeSpan
642642
case *PutOperation:
643-
err := b.Results[resultIdx].Err
644-
subO.Result = resultInit(ctx, err)
645-
subO.Result.ResumeSpan = b.Results[resultIdx].ResumeSpan
643+
res := b.Results[resultIdx]
644+
subO.Result = resultInit(ctx, res.Err)
645+
subO.Result.ResumeSpan = res.ResumeSpan
646646
case *ScanOperation:
647647
res := b.Results[resultIdx]
648-
kvs, err := res.Rows, res.Err
649-
if err != nil {
650-
subO.Result = resultInit(ctx, err)
648+
if res.Err != nil {
649+
subO.Result = resultInit(ctx, res.Err)
651650
} else {
652651
subO.Result.Type = ResultType_Values
653-
subO.Result.Values = make([]KeyValue, len(kvs))
654-
for j, kv := range kvs {
652+
subO.Result.Values = make([]KeyValue, len(res.Rows))
653+
for j, kv := range res.Rows {
655654
subO.Result.Values[j] = KeyValue{
656655
Key: []byte(kv.Key),
657656
Value: kv.Value.RawBytes,
@@ -660,26 +659,27 @@ func applyBatchOp(
660659
}
661660
subO.Result.ResumeSpan = res.ResumeSpan
662661
case *DeleteOperation:
663-
err := b.Results[resultIdx].Err
664-
subO.Result = resultInit(ctx, err)
665-
subO.Result.ResumeSpan = b.Results[resultIdx].ResumeSpan
662+
res := b.Results[resultIdx]
663+
subO.Result = resultInit(ctx, res.Err)
664+
subO.Result.ResumeSpan = res.ResumeSpan
666665
case *DeleteRangeOperation:
667666
res := b.Results[resultIdx]
668-
keys, err := res.Keys, res.Err
669-
if err != nil {
670-
subO.Result = resultInit(ctx, err)
667+
if res.Err != nil {
668+
subO.Result = resultInit(ctx, res.Err)
671669
} else {
672670
subO.Result.Type = ResultType_Keys
673-
subO.Result.Keys = make([][]byte, len(keys))
674-
for j, key := range keys {
671+
subO.Result.Keys = make([][]byte, len(res.Keys))
672+
for j, key := range res.Keys {
675673
subO.Result.Keys[j] = key
676674
}
677675
}
678676
subO.Result.ResumeSpan = res.ResumeSpan
679677
case *DeleteRangeUsingTombstoneOperation:
680-
subO.Result = resultInit(ctx, err)
681-
subO.Result.ResumeSpan = b.Results[resultIdx].ResumeSpan
678+
res := b.Results[resultIdx]
679+
subO.Result = resultInit(ctx, res.Err)
680+
subO.Result.ResumeSpan = res.ResumeSpan
682681
case *MutateBatchHeaderOperation:
682+
// NB: MutateBatchHeaderOperation cannot fail.
683683
subO.Result = resultInit(ctx, nil)
684684
case *AddSSTableOperation:
685685
panic(errors.AssertionFailedf(`AddSSTable cannot be used in batches`))

0 commit comments

Comments
 (0)