From 6260d703ce02a12a812d5071b601a3c925eb8860 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Thu, 6 Mar 2025 15:13:38 +0300 Subject: [PATCH] [#1665] treesvc: Disable service config query By default, gRPC fetches TXT report while resolving a domain. https://github.com/grpc/grpc-go/blob/0914bba6c5c5a545d34bd11e5dee0bbb8eaadd3f/internal/resolver/dns/dns_resolver.go#L336 This leads to a hanging dial if DNS is unavailable, even though the host may be specified in `/etc/hosts` (hello, localhost!). SDK client for the main API uses these options by default. Refs TrueCloudLab/frostfs-sdk-go#342 Signed-off-by: Evgenii Stratonikov --- cmd/frostfs-cli/modules/tree/client.go | 1 + pkg/services/tree/cache.go | 1 + pkg/services/tree/sync.go | 1 + 3 files changed, 3 insertions(+) diff --git a/cmd/frostfs-cli/modules/tree/client.go b/cmd/frostfs-cli/modules/tree/client.go index c6953f12..933378df 100644 --- a/cmd/frostfs-cli/modules/tree/client.go +++ b/cmd/frostfs-cli/modules/tree/client.go @@ -39,6 +39,7 @@ func _client() (tree.TreeServiceClient, error) { tracing.NewStreamClientInterceptor(), ), grpc.WithDefaultCallOptions(grpc.WaitForReady(true)), + grpc.WithDisableServiceConfig(), } if !strings.HasPrefix(netAddr.URIAddr(), "grpcs:") { diff --git a/pkg/services/tree/cache.go b/pkg/services/tree/cache.go index 125871fc..70f4a843 100644 --- a/pkg/services/tree/cache.go +++ b/pkg/services/tree/cache.go @@ -110,6 +110,7 @@ func (c *clientCache) dialTreeService(ctx context.Context, netmapAddr string) (* ), grpc.WithContextDialer(c.ds.GrpcContextDialer()), grpc.WithDefaultCallOptions(grpc.WaitForReady(true)), + grpc.WithDisableServiceConfig(), } if !netAddr.IsTLSEnabled() { diff --git a/pkg/services/tree/sync.go b/pkg/services/tree/sync.go index 3e0a4538..89450b73 100644 --- a/pkg/services/tree/sync.go +++ b/pkg/services/tree/sync.go @@ -355,6 +355,7 @@ func (*Service) createConnection(a network.Address) (*grpc.ClientConn, error) { ), grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithDefaultCallOptions(grpc.WaitForReady(true)), + grpc.WithDisableServiceConfig(), ) }