From 967933baf52a7bd113bfc23cbf4c5d01b8367d5b Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Tue, 16 Mar 2021 14:50:07 -0700 Subject: [PATCH] xds/cdsbalancer: move xds client close to run() (#4273) Otherwise client may be used by run() after closed. --- xds/internal/balancer/cdsbalancer/cdsbalancer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xds/internal/balancer/cdsbalancer/cdsbalancer.go b/xds/internal/balancer/cdsbalancer/cdsbalancer.go index 19e075bd7..b991981c1 100644 --- a/xds/internal/balancer/cdsbalancer/cdsbalancer.go +++ b/xds/internal/balancer/cdsbalancer/cdsbalancer.go @@ -391,6 +391,7 @@ func (b *cdsBalancer) run() { b.edsLB.Close() b.edsLB = nil } + b.xdsClient.Close() // This is the *ONLY* point of return from this function. b.logger.Infof("Shutdown") return @@ -493,7 +494,6 @@ func (b *cdsBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.Sub // Close closes the cdsBalancer and the underlying edsBalancer. func (b *cdsBalancer) Close() { b.closed.Fire() - b.xdsClient.Close() } // ccWrapper wraps the balancer.ClientConn passed to the CDS balancer at