浏览代码

grpcproxy: return closing error when stream is canceled from conn close

Fixes #6630
Anthony Romano 8 年之前
父节点
当前提交
28e9ba365a
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      proxy/grpcproxy/watch.go

+ 6 - 1
proxy/grpcproxy/watch.go

@@ -73,7 +73,12 @@ func (wp *watchProxy) Watch(stream pb.Watch_WatchServer) (err error) {
 	select {
 	select {
 	case <-wp.ctx.Done():
 	case <-wp.ctx.Done():
 		wp.mu.Unlock()
 		wp.mu.Unlock()
-		return
+		select {
+		case <-wp.leader.disconnectNotify():
+			return grpc.ErrClientConnClosing
+		default:
+			return wp.ctx.Err()
+		}
 	default:
 	default:
 		wp.wg.Add(1)
 		wp.wg.Add(1)
 	}
 	}