You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by li...@apache.org on 2020/06/01 18:17:51 UTC
[hadoop] branch branch-2.10 updated: HADOOP-17052.
NetUtils.connect() throws unchecked exception (UnresolvedAddressException)
causing clients to abort (#2036)
This is an automated email from the ASF dual-hosted git repository.
liuml07 pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-2.10 by this push:
new e495736 HADOOP-17052. NetUtils.connect() throws unchecked exception (UnresolvedAddressException) causing clients to abort (#2036)
e495736 is described below
commit e49573631c6acd7b6a3d1300a600f22f4b349c8e
Author: Dhiraj <dh...@users.noreply.github.com>
AuthorDate: Mon Jun 1 10:49:17 2020 -0700
HADOOP-17052. NetUtils.connect() throws unchecked exception (UnresolvedAddressException) causing clients to abort (#2036)
Contributed by Dhiraj Hegde.
Signed-off-by: Mingliang Liu <li...@apache.org>
---
.../main/java/org/apache/hadoop/net/NetUtils.java | 3 +++
.../java/org/apache/hadoop/net/TestNetUtils.java | 20 +++++++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java
index 4697320..00b3f1a 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java
@@ -37,6 +37,7 @@ import java.net.URISyntaxException;
import java.net.UnknownHostException;
import java.net.ConnectException;
import java.nio.channels.SocketChannel;
+import java.nio.channels.UnresolvedAddressException;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import java.util.*;
@@ -532,6 +533,8 @@ public class NetUtils {
}
} catch (SocketTimeoutException ste) {
throw new ConnectTimeoutException(ste.getMessage());
+ } catch (UnresolvedAddressException uae) {
+ throw new UnknownHostException(uae.getMessage());
}
// There is a very rare case allowed by the TCP specification, such that
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java
index 1c56c60..cbd0cb1 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java
@@ -95,7 +95,25 @@ public class TestNetUtils {
assertInException(se, "Invalid argument");
}
}
-
+
+ @Test
+ public void testInvalidAddress() throws Throwable {
+ Configuration conf = new Configuration();
+
+ Socket socket = NetUtils.getDefaultSocketFactory(conf)
+ .createSocket();
+ socket.bind(new InetSocketAddress("127.0.0.1", 0));
+ try {
+ NetUtils.connect(socket,
+ new InetSocketAddress("invalid-test-host",
+ 0), 20000);
+ socket.close();
+ fail("Should not have connected");
+ } catch (UnknownHostException uhe) {
+ LOG.info("Got exception: ", uhe);
+ }
+ }
+
@Test
public void testSocketReadTimeoutWithChannel() throws Exception {
doSocketReadTimeoutTest(true);
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org