소스 검색

Merge pull request #6856 from heyitsanthony/proxy-lease-fix

grpcproxy: copy range request before storing in cache
Anthony Romano 9 년 전
부모
커밋
e55b8485dd
1개의 변경된 파일5개의 추가작업 그리고 4개의 파일을 삭제
  1. 5 4
      proxy/grpcproxy/kv.go

+ 5 - 4
proxy/grpcproxy/kv.go

@@ -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)
 		}
 	}
 }