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)