Browse Source

grpcproxy: fix double create event

Xiang Li 9 years ago
parent
commit
805d4cbd93
1 changed files with 8 additions and 0 deletions
  1. 8 0
      proxy/grpcproxy/watcher_groups.go

+ 8 - 0
proxy/grpcproxy/watcher_groups.go

@@ -43,6 +43,14 @@ func (wgs *watchergroups) addWatcher(rid receiverID, w watcher) {
 		rev := wg.add(rid, w)
 		wgs.idToGroup[rid] = wg
 
+		if rev == 0 {
+			// The group is newly created, the create event has not been delivered
+			// to this group yet.
+			// We can rely on etcd server to deliver the create event.
+			// Or we might end up sending created event twice.
+			return
+		}
+
 		resp := &pb.WatchResponse{
 			Header: &pb.ResponseHeader{
 				// todo: fill in ClusterId