From a0b2c6ad4b70dbf705eba6300d840cb1828847ea Mon Sep 17 00:00:00 2001 From: Ziheng Liu Date: Sat, 3 Aug 2019 18:08:02 -0700 Subject: [PATCH] proxy/grpcproxy: Add critical section to protect wps.watchers and wps.nextWatcherID --- proxy/grpcproxy/watch.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proxy/grpcproxy/watch.go b/proxy/grpcproxy/watch.go index 639bf8e2d..8dee6e343 100644 --- a/proxy/grpcproxy/watch.go +++ b/proxy/grpcproxy/watch.go @@ -240,6 +240,7 @@ func (wps *watchProxyStream) recvLoop() error { continue } + wps.mu.Lock() w := &watcher{ wr: watchRange{string(cr.Key), string(cr.RangeEnd)}, id: wps.nextWatcherID, @@ -258,6 +259,7 @@ func (wps *watchProxyStream) recvLoop() error { w.nextrev = cr.StartRevision wps.watchers[w.id] = w wps.ranges.add(w) + wps.mu.Unlock() case *pb.WatchRequest_CancelRequest: wps.delete(uv.CancelRequest.WatchId) default: