mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
grpcproxy: copy range request before storing in cache
Reused Range requests would have Serialized overwritten with 'true'. Was failing on TestV3LeaseSwitch.
This commit is contained in:
parent
7c8f13aed7
commit
1358a9d460
@ -51,9 +51,10 @@ func (p *kvProxy) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeRespo
|
||||
}
|
||||
|
||||
// cache linearizable as serializable
|
||||
r.Serializable = true
|
||||
req := *r
|
||||
req.Serializable = true
|
||||
gresp := (*pb.RangeResponse)(resp.Get())
|
||||
p.cache.Add(r, gresp)
|
||||
p.cache.Add(&req, gresp)
|
||||
|
||||
return gresp, nil
|
||||
}
|
||||
@ -79,9 +80,9 @@ func (p *kvProxy) txnToCache(reqs []*pb.RequestOp, resps []*pb.ResponseOp) {
|
||||
rdr := reqs[i].GetRequestDeleteRange()
|
||||
p.cache.Invalidate(rdr.Key, rdr.RangeEnd)
|
||||
case *pb.ResponseOp_ResponseRange:
|
||||
req := reqs[i].GetRequestRange()
|
||||
req := *(reqs[i].GetRequestRange())
|
||||
req.Serializable = true
|
||||
p.cache.Add(req, tv.ResponseRange)
|
||||
p.cache.Add(&req, tv.ResponseRange)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user