Skip to content

Commit 68968dd

Browse files
committed
Use context argument instead of returning trace
It further decouples traceutil from the internal interface as now any (OTEL or other) tracing library, which relies on context, can be used. applyResult struct still needs to keep Trace field as "process raft request" doesn't propagate the caller's context (nor Trace ID). Signed-off-by: Aleksander Mistewicz <[email protected]>
1 parent 2f5a091 commit 68968dd

File tree

12 files changed

+103
-90
lines changed

12 files changed

+103
-90
lines changed

server/etcdserver/api/v3rpc/validationfuzz_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func execTransaction(t *testing.T, req *pb.RequestOp) {
175175
Success: []*pb.RequestOp{req},
176176
}
177177

178-
_, _, err := txn.Txn(ctx, zaptest.NewLogger(t), request, false, s, &lease.FakeLessor{})
178+
_, err := txn.Txn(ctx, zaptest.NewLogger(t), request, false, s, &lease.FakeLessor{})
179179
if err != nil {
180180
t.Skipf("Application erroring. %s", err.Error())
181181
}

server/etcdserver/apply/apply.go

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ type applierV3 interface {
7171
// delegates the actual execution to the applyFunc method.
7272
Apply(r *pb.InternalRaftRequest, shouldApplyV3 membership.ShouldApplyV3, applyFunc applyFunc) *Result
7373

74-
Put(p *pb.PutRequest) (*pb.PutResponse, *traceutil.Trace, error)
75-
Range(r *pb.RangeRequest) (*pb.RangeResponse, *traceutil.Trace, error)
76-
DeleteRange(dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, *traceutil.Trace, error)
77-
Txn(rt *pb.TxnRequest) (*pb.TxnResponse, *traceutil.Trace, error)
78-
Compaction(compaction *pb.CompactionRequest) (*pb.CompactionResponse, <-chan struct{}, *traceutil.Trace, error)
74+
Put(ctx context.Context, p *pb.PutRequest) (*pb.PutResponse, error)
75+
Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeResponse, error)
76+
DeleteRange(ctx context.Context, dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error)
77+
Txn(ctx context.Context, rt *pb.TxnRequest) (*pb.TxnResponse, error)
78+
Compaction(ctx context.Context, compaction *pb.CompactionRequest) (*pb.CompactionResponse, <-chan struct{}, error)
7979

8080
LeaseGrant(lc *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error)
8181
LeaseRevoke(lc *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error)
@@ -142,37 +142,37 @@ func (a *applierV3backend) Apply(r *pb.InternalRaftRequest, shouldApplyV3 member
142142
return applyFunc(r, shouldApplyV3)
143143
}
144144

145-
func (a *applierV3backend) Put(p *pb.PutRequest) (resp *pb.PutResponse, trace *traceutil.Trace, err error) {
146-
return mvcctxn.Put(context.TODO(), a.options.Logger, a.options.Lessor, a.options.KV, p)
145+
func (a *applierV3backend) Put(ctx context.Context, p *pb.PutRequest) (resp *pb.PutResponse, err error) {
146+
return mvcctxn.Put(ctx, a.options.Logger, a.options.Lessor, a.options.KV, p)
147147
}
148148

149-
func (a *applierV3backend) DeleteRange(dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, *traceutil.Trace, error) {
150-
return mvcctxn.DeleteRange(context.TODO(), a.options.Logger, a.options.KV, dr)
149+
func (a *applierV3backend) DeleteRange(ctx context.Context, dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) {
150+
return mvcctxn.DeleteRange(ctx, a.options.Logger, a.options.KV, dr)
151151
}
152152

153-
func (a *applierV3backend) Range(r *pb.RangeRequest) (*pb.RangeResponse, *traceutil.Trace, error) {
154-
return mvcctxn.Range(context.TODO(), a.options.Logger, a.options.KV, r)
153+
func (a *applierV3backend) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeResponse, error) {
154+
return mvcctxn.Range(ctx, a.options.Logger, a.options.KV, r)
155155
}
156156

157-
func (a *applierV3backend) Txn(rt *pb.TxnRequest) (*pb.TxnResponse, *traceutil.Trace, error) {
158-
return mvcctxn.Txn(context.TODO(), a.options.Logger, rt, a.options.TxnModeWriteWithSharedBuffer, a.options.KV, a.options.Lessor)
157+
func (a *applierV3backend) Txn(ctx context.Context, rt *pb.TxnRequest) (*pb.TxnResponse, error) {
158+
return mvcctxn.Txn(ctx, a.options.Logger, rt, a.options.TxnModeWriteWithSharedBuffer, a.options.KV, a.options.Lessor)
159159
}
160160

161-
func (a *applierV3backend) Compaction(compaction *pb.CompactionRequest) (*pb.CompactionResponse, <-chan struct{}, *traceutil.Trace, error) {
161+
func (a *applierV3backend) Compaction(ctx context.Context, compaction *pb.CompactionRequest) (*pb.CompactionResponse, <-chan struct{}, error) {
162162
resp := &pb.CompactionResponse{}
163163
resp.Header = &pb.ResponseHeader{}
164-
ctx, trace := traceutil.EnsureTrace(context.TODO(), a.options.Logger, "compact",
164+
ctx, trace := traceutil.EnsureTrace(ctx, a.options.Logger, "compact",
165165
traceutil.Field{Key: "revision", Value: compaction.Revision},
166166
)
167167

168168
ch, err := a.options.KV.Compact(trace, compaction.Revision)
169169
if err != nil {
170-
return nil, ch, nil, err
170+
return nil, ch, err
171171
}
172172
// get the current revision. which key to get is not important.
173173
rr, _ := a.options.KV.Range(ctx, []byte("compaction"), nil, mvcc.RangeOptions{})
174174
resp.Header.Revision = rr.Rev
175-
return resp, ch, trace, err
175+
return resp, ch, err
176176
}
177177

178178
func (a *applierV3backend) LeaseGrant(lc *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error) {
@@ -239,15 +239,15 @@ type applierV3Capped struct {
239239
// with Puts so that the number of keys in the store is capped.
240240
func newApplierV3Capped(base applierV3) applierV3 { return &applierV3Capped{applierV3: base} }
241241

242-
func (a *applierV3Capped) Put(_ *pb.PutRequest) (*pb.PutResponse, *traceutil.Trace, error) {
243-
return nil, nil, errors.ErrNoSpace
242+
func (a *applierV3Capped) Put(_ context.Context, _ *pb.PutRequest) (*pb.PutResponse, error) {
243+
return nil, errors.ErrNoSpace
244244
}
245245

246-
func (a *applierV3Capped) Txn(r *pb.TxnRequest) (*pb.TxnResponse, *traceutil.Trace, error) {
246+
func (a *applierV3Capped) Txn(ctx context.Context, r *pb.TxnRequest) (*pb.TxnResponse, error) {
247247
if a.q.Cost(r) > 0 {
248-
return nil, nil, errors.ErrNoSpace
248+
return nil, errors.ErrNoSpace
249249
}
250-
return a.applierV3.Txn(r)
250+
return a.applierV3.Txn(ctx, r)
251251
}
252252

253253
func (a *applierV3Capped) LeaseGrant(_ *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error) {
@@ -431,22 +431,22 @@ func newQuotaApplierV3(lg *zap.Logger, quotaBackendBytesCfg int64, be backend.Ba
431431
return &quotaApplierV3{app, serverstorage.NewBackendQuota(lg, quotaBackendBytesCfg, be, "v3-applier")}
432432
}
433433

434-
func (a *quotaApplierV3) Put(p *pb.PutRequest) (*pb.PutResponse, *traceutil.Trace, error) {
434+
func (a *quotaApplierV3) Put(ctx context.Context, p *pb.PutRequest) (*pb.PutResponse, error) {
435435
ok := a.q.Available(p)
436-
resp, trace, err := a.applierV3.Put(p)
436+
resp, err := a.applierV3.Put(ctx, p)
437437
if err == nil && !ok {
438438
err = errors.ErrNoSpace
439439
}
440-
return resp, trace, err
440+
return resp, err
441441
}
442442

443-
func (a *quotaApplierV3) Txn(rt *pb.TxnRequest) (*pb.TxnResponse, *traceutil.Trace, error) {
443+
func (a *quotaApplierV3) Txn(ctx context.Context, rt *pb.TxnRequest) (*pb.TxnResponse, error) {
444444
ok := a.q.Available(rt)
445-
resp, trace, err := a.applierV3.Txn(rt)
445+
resp, err := a.applierV3.Txn(ctx, rt)
446446
if err == nil && !ok {
447447
err = errors.ErrNoSpace
448448
}
449-
return resp, trace, err
449+
return resp, err
450450
}
451451

452452
func (a *quotaApplierV3) LeaseGrant(lc *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error) {

server/etcdserver/apply/apply_auth.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
package apply
1616

1717
import (
18+
"context"
1819
"sync"
1920

2021
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
21-
"go.etcd.io/etcd/pkg/v3/traceutil"
2222
"go.etcd.io/etcd/server/v3/auth"
2323
"go.etcd.io/etcd/server/v3/etcdserver/api/membership"
2424
"go.etcd.io/etcd/server/v3/etcdserver/txn"
@@ -63,54 +63,54 @@ func (aa *authApplierV3) Apply(r *pb.InternalRaftRequest, shouldApplyV3 membersh
6363
return ret
6464
}
6565

66-
func (aa *authApplierV3) Put(r *pb.PutRequest) (*pb.PutResponse, *traceutil.Trace, error) {
66+
func (aa *authApplierV3) Put(ctx context.Context, r *pb.PutRequest) (*pb.PutResponse, error) {
6767
if err := aa.as.IsPutPermitted(&aa.authInfo, r.Key); err != nil {
68-
return nil, nil, err
68+
return nil, err
6969
}
7070

7171
if err := aa.checkLeasePuts(lease.LeaseID(r.Lease)); err != nil {
7272
// The specified lease is already attached with a key that cannot
7373
// be written by this user. It means the user cannot revoke the
7474
// lease so attaching the lease to the newly written key should
7575
// be forbidden.
76-
return nil, nil, err
76+
return nil, err
7777
}
7878

7979
if r.PrevKv {
8080
err := aa.as.IsRangePermitted(&aa.authInfo, r.Key, nil)
8181
if err != nil {
82-
return nil, nil, err
82+
return nil, err
8383
}
8484
}
85-
return aa.applierV3.Put(r)
85+
return aa.applierV3.Put(ctx, r)
8686
}
8787

88-
func (aa *authApplierV3) Range(r *pb.RangeRequest) (*pb.RangeResponse, *traceutil.Trace, error) {
88+
func (aa *authApplierV3) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeResponse, error) {
8989
if err := aa.as.IsRangePermitted(&aa.authInfo, r.Key, r.RangeEnd); err != nil {
90-
return nil, nil, err
90+
return nil, err
9191
}
92-
return aa.applierV3.Range(r)
92+
return aa.applierV3.Range(ctx, r)
9393
}
9494

95-
func (aa *authApplierV3) DeleteRange(r *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, *traceutil.Trace, error) {
95+
func (aa *authApplierV3) DeleteRange(ctx context.Context, r *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) {
9696
if err := aa.as.IsDeleteRangePermitted(&aa.authInfo, r.Key, r.RangeEnd); err != nil {
97-
return nil, nil, err
97+
return nil, err
9898
}
9999
if r.PrevKv {
100100
err := aa.as.IsRangePermitted(&aa.authInfo, r.Key, r.RangeEnd)
101101
if err != nil {
102-
return nil, nil, err
102+
return nil, err
103103
}
104104
}
105105

106-
return aa.applierV3.DeleteRange(r)
106+
return aa.applierV3.DeleteRange(ctx, r)
107107
}
108108

109-
func (aa *authApplierV3) Txn(rt *pb.TxnRequest) (*pb.TxnResponse, *traceutil.Trace, error) {
109+
func (aa *authApplierV3) Txn(ctx context.Context, rt *pb.TxnRequest) (*pb.TxnResponse, error) {
110110
if err := txn.CheckTxnAuth(aa.as, &aa.authInfo, rt); err != nil {
111-
return nil, nil, err
111+
return nil, err
112112
}
113-
return aa.applierV3.Txn(rt)
113+
return aa.applierV3.Txn(ctx, rt)
114114
}
115115

116116
func (aa *authApplierV3) LeaseRevoke(lc *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error) {

server/etcdserver/apply/apply_auth_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ func TestAuthApplierV3_Put(t *testing.T) {
440440
for _, tc := range tcs {
441441
t.Run(tc.name, func(t *testing.T) {
442442
setAuthInfo(authApplier, tc.userName)
443-
_, _, err := authApplier.Put(tc.request)
443+
_, err := authApplier.Put(t.Context(), tc.request)
444444
require.Equalf(t, tc.expectError, err, "Put returned unexpected error (or lack thereof), expected: %v, got: %v", tc.expectError, err)
445445
})
446446
}
@@ -459,7 +459,7 @@ func TestAuthApplierV3_LeasePut(t *testing.T) {
459459

460460
// The user should be able to put the key
461461
setAuthInfo(authApplier, userWriteOnly)
462-
_, _, err = authApplier.Put(&pb.PutRequest{
462+
_, err = authApplier.Put(t.Context(), &pb.PutRequest{
463463
Key: []byte(key),
464464
Value: []byte("1"),
465465
Lease: leaseID,
@@ -468,7 +468,7 @@ func TestAuthApplierV3_LeasePut(t *testing.T) {
468468

469469
// Put a key under the lease outside user's key range
470470
setAuthInfo(authApplier, userRoot)
471-
_, _, err = authApplier.Put(&pb.PutRequest{
471+
_, err = authApplier.Put(t.Context(), &pb.PutRequest{
472472
Key: []byte(keyOutsideRange),
473473
Value: []byte("1"),
474474
Lease: leaseID,
@@ -477,7 +477,7 @@ func TestAuthApplierV3_LeasePut(t *testing.T) {
477477

478478
// The user should not be able to put the key anymore
479479
setAuthInfo(authApplier, userWriteOnly)
480-
_, _, err = authApplier.Put(&pb.PutRequest{
480+
_, err = authApplier.Put(t.Context(), &pb.PutRequest{
481481
Key: []byte(key),
482482
Value: []byte("1"),
483483
Lease: leaseID,
@@ -523,7 +523,7 @@ func TestAuthApplierV3_Range(t *testing.T) {
523523
for _, tc := range tcs {
524524
t.Run(tc.name, func(t *testing.T) {
525525
setAuthInfo(authApplier, tc.userName)
526-
_, _, err := authApplier.Range(tc.request)
526+
_, err := authApplier.Range(t.Context(), tc.request)
527527
require.Equalf(t, tc.expectError, err, "Range returned unexpected error (or lack thereof), expected: %v, got: %v", tc.expectError, err)
528528
})
529529
}
@@ -587,7 +587,7 @@ func TestAuthApplierV3_DeleteRange(t *testing.T) {
587587
for _, tc := range tcs {
588588
t.Run(tc.name, func(t *testing.T) {
589589
setAuthInfo(authApplier, tc.userName)
590-
_, _, err := authApplier.DeleteRange(tc.request)
590+
_, err := authApplier.DeleteRange(t.Context(), tc.request)
591591
require.Equalf(t, tc.expectError, err, "Range returned unexpected error (or lack thereof), expected: %v, got: %v", tc.expectError, err)
592592
})
593593
}
@@ -657,7 +657,7 @@ func TestAuthApplierV3_Txn(t *testing.T) {
657657
for _, tc := range tcs {
658658
t.Run(tc.name, func(t *testing.T) {
659659
setAuthInfo(authApplier, tc.userName)
660-
_, _, err := authApplier.Txn(tc.request)
660+
_, err := authApplier.Txn(t.Context(), tc.request)
661661
require.Equalf(t, tc.expectError, err, "Range returned unexpected error (or lack thereof), expected: %v, got: %v", tc.expectError, err)
662662
})
663663
}
@@ -690,7 +690,7 @@ func TestAuthApplierV3_LeaseRevoke(t *testing.T) {
690690

691691
// Put a key under the lease outside user's key range
692692
setAuthInfo(authApplier, userRoot)
693-
_, _, err = authApplier.Put(&pb.PutRequest{
693+
_, err = authApplier.Put(t.Context(), &pb.PutRequest{
694694
Key: []byte(keyOutsideRange),
695695
Value: []byte("1"),
696696
Lease: leaseID,

server/etcdserver/apply/corrupt.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
package apply
1616

1717
import (
18+
"context"
19+
1820
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
19-
"go.etcd.io/etcd/pkg/v3/traceutil"
2021
"go.etcd.io/etcd/server/v3/etcdserver/errors"
2122
)
2223

@@ -26,24 +27,24 @@ type applierV3Corrupt struct {
2627

2728
func newApplierV3Corrupt(a applierV3) *applierV3Corrupt { return &applierV3Corrupt{a} }
2829

29-
func (a *applierV3Corrupt) Put(_ *pb.PutRequest) (*pb.PutResponse, *traceutil.Trace, error) {
30-
return nil, nil, errors.ErrCorrupt
30+
func (a *applierV3Corrupt) Put(_ context.Context, _ *pb.PutRequest) (*pb.PutResponse, error) {
31+
return nil, errors.ErrCorrupt
3132
}
3233

33-
func (a *applierV3Corrupt) Range(_ *pb.RangeRequest) (*pb.RangeResponse, *traceutil.Trace, error) {
34-
return nil, nil, errors.ErrCorrupt
34+
func (a *applierV3Corrupt) Range(_ context.Context, _ *pb.RangeRequest) (*pb.RangeResponse, error) {
35+
return nil, errors.ErrCorrupt
3536
}
3637

37-
func (a *applierV3Corrupt) DeleteRange(_ *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, *traceutil.Trace, error) {
38-
return nil, nil, errors.ErrCorrupt
38+
func (a *applierV3Corrupt) DeleteRange(_ context.Context, _ *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) {
39+
return nil, errors.ErrCorrupt
3940
}
4041

41-
func (a *applierV3Corrupt) Txn(_ *pb.TxnRequest) (*pb.TxnResponse, *traceutil.Trace, error) {
42-
return nil, nil, errors.ErrCorrupt
42+
func (a *applierV3Corrupt) Txn(_ context.Context, _ *pb.TxnRequest) (*pb.TxnResponse, error) {
43+
return nil, errors.ErrCorrupt
4344
}
4445

45-
func (a *applierV3Corrupt) Compaction(_ *pb.CompactionRequest) (*pb.CompactionResponse, <-chan struct{}, *traceutil.Trace, error) {
46-
return nil, nil, nil, errors.ErrCorrupt
46+
func (a *applierV3Corrupt) Compaction(_ context.Context, _ *pb.CompactionRequest) (*pb.CompactionResponse, <-chan struct{}, error) {
47+
return nil, nil, errors.ErrCorrupt
4748
}
4849

4950
func (a *applierV3Corrupt) LeaseGrant(_ *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error) {

server/etcdserver/apply/uber_applier.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515
package apply
1616

1717
import (
18+
"context"
1819
"errors"
1920
"time"
2021

2122
"go.uber.org/zap"
2223

2324
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
25+
"go.etcd.io/etcd/pkg/v3/traceutil"
2426
"go.etcd.io/etcd/server/v3/etcdserver/api/membership"
2527
"go.etcd.io/etcd/server/v3/etcdserver/api/v3alarm"
2628
"go.etcd.io/etcd/server/v3/etcdserver/txn"
@@ -130,19 +132,29 @@ func (a *uberApplier) dispatch(r *pb.InternalRaftRequest, shouldApplyV3 membersh
130132
switch {
131133
case r.Range != nil:
132134
op = "Range"
133-
ar.Resp, ar.Trace, ar.Err = a.applyV3.Range(r.Range)
135+
ctx, trace := traceutil.EnsureTrace(context.Background(), a.lg, op)
136+
ar.Resp, ar.Err = a.applyV3.Range(ctx, r.Range)
137+
ar.Trace = trace
134138
case r.Put != nil:
135139
op = "Put"
136-
ar.Resp, ar.Trace, ar.Err = a.applyV3.Put(r.Put)
140+
ctx, trace := traceutil.EnsureTrace(context.Background(), a.lg, op)
141+
ar.Resp, ar.Err = a.applyV3.Put(ctx, r.Put)
142+
ar.Trace = trace
137143
case r.DeleteRange != nil:
138144
op = "DeleteRange"
139-
ar.Resp, ar.Trace, ar.Err = a.applyV3.DeleteRange(r.DeleteRange)
145+
ctx, trace := traceutil.EnsureTrace(context.Background(), a.lg, op)
146+
ar.Resp, ar.Err = a.applyV3.DeleteRange(ctx, r.DeleteRange)
147+
ar.Trace = trace
140148
case r.Txn != nil:
141149
op = "Txn"
142-
ar.Resp, ar.Trace, ar.Err = a.applyV3.Txn(r.Txn)
150+
ctx, trace := traceutil.EnsureTrace(context.Background(), a.lg, op)
151+
ar.Resp, ar.Err = a.applyV3.Txn(ctx, r.Txn)
152+
ar.Trace = trace
143153
case r.Compaction != nil:
144154
op = "Compaction"
145-
ar.Resp, ar.Physc, ar.Trace, ar.Err = a.applyV3.Compaction(r.Compaction)
155+
ctx, trace := traceutil.EnsureTrace(context.Background(), a.lg, op)
156+
ar.Resp, ar.Physc, ar.Err = a.applyV3.Compaction(ctx, r.Compaction)
157+
ar.Trace = trace
146158
case r.LeaseGrant != nil:
147159
op = "LeaseGrant"
148160
ar.Resp, ar.Err = a.applyV3.LeaseGrant(r.LeaseGrant)

server/etcdserver/txn/delete.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ import (
2525
"go.etcd.io/etcd/server/v3/storage/mvcc"
2626
)
2727

28-
func DeleteRange(ctx context.Context, lg *zap.Logger, kv mvcc.KV, dr *pb.DeleteRangeRequest) (resp *pb.DeleteRangeResponse, trace *traceutil.Trace, err error) {
29-
ctx, trace = traceutil.EnsureTrace(ctx, lg, "delete_range",
28+
func DeleteRange(ctx context.Context, lg *zap.Logger, kv mvcc.KV, dr *pb.DeleteRangeRequest) (resp *pb.DeleteRangeResponse, err error) {
29+
ctx, trace := traceutil.EnsureTrace(ctx, lg, "delete_range",
3030
traceutil.Field{Key: "key", Value: string(dr.Key)},
3131
traceutil.Field{Key: "range_end", Value: string(dr.RangeEnd)},
3232
)
3333
txnWrite := kv.Write(trace)
3434
defer txnWrite.End()
3535
resp, err = deleteRange(ctx, txnWrite, dr)
36-
return resp, trace, err
36+
return resp, err
3737
}
3838

3939
func deleteRange(ctx context.Context, txnWrite mvcc.TxnWrite, dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) {

0 commit comments

Comments
 (0)