Skip to content

Commit 4843256

Browse files
authored
core: simplify DnsNameResolver.resolveAddresses()
`resolveAddresses()` is a private method, called only once. There is no need to handle exceptions in multiple places. The reason for creating this PR: I have noticed an exception like this in the logs ``` 2025-10-16 13:09:33.141 WARN  [grpc-default-executor-222]    ManagedChannelImpl            [Channel<47>: (x.y.com:443)] Failed to resolve name. status=Status{code=UNAVAILABLE, description=Unable to resolve host x.y.com, cause=java.lang.RuntimeException: java.net.UnknownHostException: x.y.com: nodename nor servname provided, or not known ... Caused by: java.net.UnknownHostException: x.y.com: nodename nor servname provided, or not known ... } ```
1 parent e25c414 commit 4843256

File tree

1 file changed

+3
-15
lines changed

1 file changed

+3
-15
lines changed

core/src/main/java/io/grpc/internal/DnsNameResolver.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.google.common.base.Objects;
2424
import com.google.common.base.Preconditions;
2525
import com.google.common.base.Stopwatch;
26-
import com.google.common.base.Throwables;
2726
import com.google.common.base.Verify;
2827
import com.google.common.base.VerifyException;
2928
import io.grpc.Attributes;
@@ -211,20 +210,8 @@ public void refresh() {
211210
resolve();
212211
}
213212

214-
private List<EquivalentAddressGroup> resolveAddresses() {
215-
List<? extends InetAddress> addresses;
216-
Exception addressesException = null;
217-
try {
218-
addresses = addressResolver.resolveAddress(host);
219-
} catch (Exception e) {
220-
addressesException = e;
221-
Throwables.throwIfUnchecked(e);
222-
throw new RuntimeException(e);
223-
} finally {
224-
if (addressesException != null) {
225-
logger.log(Level.FINE, "Address resolution failure", addressesException);
226-
}
227-
}
213+
private List<EquivalentAddressGroup> resolveAddresses() throws Exception {
214+
List<? extends InetAddress> addresses = addressResolver.resolveAddress(host);
228215
// Each address forms an EAG
229216
List<EquivalentAddressGroup> servers = new ArrayList<>(addresses.size());
230217
for (InetAddress inetAddr : addresses) {
@@ -280,6 +267,7 @@ protected InternalResolutionResult doResolve(boolean forceTxt) {
280267
try {
281268
result.addresses = resolveAddresses();
282269
} catch (Exception e) {
270+
logger.log(Level.FINE, "Address resolution failure", e);
283271
if (!forceTxt) {
284272
result.error =
285273
Status.UNAVAILABLE.withDescription("Unable to resolve host " + host).withCause(e);

0 commit comments

Comments
 (0)