Haonan Hou created RATIS-2594:
---------------------------------

             Summary: Investigate usage of Netty native macOS DNS resolver
                 Key: RATIS-2594
                 URL: https://issues.apache.org/jira/browse/RATIS-2594
             Project: Ratis
          Issue Type: Improvement
          Components: Netty
            Reporter: Haonan Hou


After investigating the macOS Netty native DNS resolver packaged in 
{{{}ratis-thirdparty{}}}, it looks like it is not currently on Ratis’ default 
runtime path.

{{ratis-thirdparty-misc}} packages {{{}netty-resolver-dns-native-macos{}}}, but 
Ratis appears to rely on JDK-based DNS resolution today.

Evidence:
 * Ratis gRPC channels are created through 
{{{}NettyChannelBuilder.forTarget(...){}}}.
 * gRPC Java resolves those targets through its internal 
{{{}DnsNameResolver{}}}, whose default address resolver uses 
{{{}InetAddress.getAllByName(...){}}}.
 * The non-gRPC Netty path resolves peer addresses through 
{{{}NetUtils.createSocketAddr(...){}}}, which uses 
{{{}InetAddress.getByName(...){}}}.
 * Netty {{Bootstrap}} also defaults to {{{}DefaultAddressResolverGroup{}}}, 
which uses the JDK resolver unless a Netty DNS resolver group is explicitly 
configured.
 * There is no current usage of Netty {{DnsNameResolverBuilder}} or 
{{DnsAddressResolverGroup}} in Ratis.

This seems to be historical behavior rather than an intentional design 
decision, since the native macOS DNS resolver library is already packaged in 
{{{}ratis-thirdparty{}}}.

*Acceptance Criteria*
 * Decide whether Ratis should use Netty’s native macOS DNS resolver in any 
runtime path.
 * If yes, identify the appropriate gRPC and/or Netty integration points.
 * Preserve existing DNS behavior unless explicitly changed.
 * Document any limitations or configuration needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to