diff --git a/etcdserver/api/v3rpc/watch.go b/etcdserver/api/v3rpc/watch.go index b7d538280..dba064679 100644 --- a/etcdserver/api/v3rpc/watch.go +++ b/etcdserver/api/v3rpc/watch.go @@ -268,7 +268,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()