From b60f4ab756afd933c9903bd67553def1c3e8ae19 Mon Sep 17 00:00:00 2001 From: Louis Barthonet Date: Wed, 1 Oct 2025 14:52:22 +0100 Subject: [PATCH] fix(resolverWrapper): only run logging logic in verbose mode The default verbosity level is 0, so the first part of this logic always evaluated to false, meaning that this would never be reached unless the user sets `GRPC_GO_LOG_VERBOSITY_LEVEL=-1`. This should be disabled by default. This also swaps the and for an or, so that if channelz is off, the logic does not run either, which wasn't the case before. This method has been using lots of CPU for some of our usecases, as serializing lots of addresseses repeatedly can be costly. --- resolver_wrapper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resolver_wrapper.go b/resolver_wrapper.go index 80e16a327cd3..16e2d3edb92d 100644 --- a/resolver_wrapper.go +++ b/resolver_wrapper.go @@ -187,7 +187,7 @@ func (ccr *ccResolverWrapper) ParseServiceConfig(scJSON string) *serviceconfig.P // addChannelzTraceEvent adds a channelz trace event containing the new // state received from resolver implementations. func (ccr *ccResolverWrapper) addChannelzTraceEvent(s resolver.State) { - if !logger.V(0) && !channelz.IsOn() { + if !logger.V(2) || !channelz.IsOn() { return } var updates []string