Переглянути джерело

clientv3: check stream context in lease keep alive send loop

If no leases are being kept alive, a connection reset would leak
the send routine since it would only test the stream when sending
keep alives.

Fixes #5200
Anthony Romano 9 роки тому
батько
коміт
30a9229f38
1 змінених файлів з 2 додано та 0 видалено
  1. 2 0
      clientv3/lease.go

+ 2 - 0
clientv3/lease.go

@@ -351,6 +351,8 @@ func (l *lessor) sendKeepAliveLoop(stream pb.Lease_LeaseKeepAliveClient) {
 	for {
 		select {
 		case <-time.After(500 * time.Millisecond):
+		case <-stream.Context().Done():
+			return
 		case <-l.donec:
 			return
 		case <-l.stopCtx.Done():