From 8866abbd0a526533aeb3543e75928e9c13d75e97 Mon Sep 17 00:00:00 2001 From: Tobias Kongsvik Date: Wed, 27 Aug 2025 08:47:44 +0200 Subject: [PATCH] Implement ExitIdle on the Balancer go-grpc@1.74.0 introduced a breaking change to the balancer.Balancer interface by introducing a new method. To still satisfy that interface we need to implement ExitIdle. It's been an optional part of the balancer, as a seperate interface, for quite a while. And since it's not implementing ExitIdle already, I assume it's safe to do a no-op. --- balancer.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/balancer.go b/balancer.go index b049957..d48a961 100644 --- a/balancer.go +++ b/balancer.go @@ -383,6 +383,12 @@ func (b *ringBalancer) Close() { // No internal state to clean up and no need to call RemoveSubConn. } +func (b *ringBalancer) ExitIdle() { + // No-op as we already reconnect SubConns on demand when they report + // connectivity.Idle in UpdateSubConnState. This is here to satisfy + // the balancer.Balancer interface >v1.74.0 +} + type picker struct { hashring *hashring.Ring spread uint8