From a4c9bf8f7344bb6e5a977dda14c5c09b97e6636f Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Wed, 8 Dec 2021 12:08:13 -0800 Subject: [PATCH] [xds_client_connection_errors] xds/client: send connection errors to all watchers --- xds/internal/xdsclient/pubsub/update.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/xds/internal/xdsclient/pubsub/update.go b/xds/internal/xdsclient/pubsub/update.go index ab8c94ccf3f7..371405b67972 100644 --- a/xds/internal/xdsclient/pubsub/update.go +++ b/xds/internal/xdsclient/pubsub/update.go @@ -295,6 +295,21 @@ func (pb *Pubsub) NewConnectionError(err error) { pb.mu.Lock() defer pb.mu.Unlock() + for _, s := range pb.ldsWatchers { + for wi := range s { + wi.newError(xdsresource.NewErrorf(xdsresource.ErrorTypeConnection, "xds: error received from xDS stream: %v", err)) + } + } + for _, s := range pb.rdsWatchers { + for wi := range s { + wi.newError(xdsresource.NewErrorf(xdsresource.ErrorTypeConnection, "xds: error received from xDS stream: %v", err)) + } + } + for _, s := range pb.cdsWatchers { + for wi := range s { + wi.newError(xdsresource.NewErrorf(xdsresource.ErrorTypeConnection, "xds: error received from xDS stream: %v", err)) + } + } for _, s := range pb.edsWatchers { for wi := range s { wi.newError(xdsresource.NewErrorf(xdsresource.ErrorTypeConnection, "xds: error received from xDS stream: %v", err))