diff --git a/etcdserver/api/v3rpc/watch.go b/etcdserver/api/v3rpc/watch.go index 0630a7480..fbf8f06a6 100644 --- a/etcdserver/api/v3rpc/watch.go +++ b/etcdserver/api/v3rpc/watch.go @@ -295,7 +295,8 @@ func (sws *serverWatchStream) sendLoop() { } sws.mu.Lock() - if _, ok := sws.progress[wresp.WatchID]; ok { + if len(evs) > 0 && sws.progress[wresp.WatchID] { + // elide next progress update if sent a key update sws.progress[wresp.WatchID] = false } sws.mu.Unlock()