Repository: hadoop Updated Branches: refs/heads/branch-2.7 829959a8f -> 1f2ab8b74
HDFS-4210. Throw helpful exception when DNS entry for JournalNode cannot be resolved. Contributed by Charles Lamb and John Zhuge. (cherry picked from commit a291306510b76d1d3382c31bea7eeb54c89c4fb4) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1f2ab8b7 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1f2ab8b7 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1f2ab8b7 Branch: refs/heads/branch-2.7 Commit: 1f2ab8b742bf1737881530c895fbba48462a9741 Parents: 829959a Author: Xiao Chen <x...@apache.org> Authored: Mon Aug 29 17:41:01 2016 -0700 Committer: Konstantin V Shvachko <s...@apache.org> Committed: Wed Feb 21 16:01:42 2018 -0800 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../qjournal/client/QuorumJournalManager.java | 9 +++++++-- .../hdfs/qjournal/client/TestQJMWithFaults.java | 19 ++++++++++++++++++- 3 files changed, 28 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f2ab8b7/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index c93f24c..69c02b2f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -39,6 +39,9 @@ Release 2.7.6 - UNRELEASED HDFS-13112. Token expiration edits may cause log corruption or deadlock. (daryn via kihwal) + HDFS-4210. Throw helpful exception when DNS entry for JournalNode cannot be + resolved. (Charles Lamb and John Zhuge) + Release 2.7.5 - 2017-12-14 INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f2ab8b7/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/client/QuorumJournalManager.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/client/QuorumJournalManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/client/QuorumJournalManager.java index 1b84964..4123204 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/client/QuorumJournalManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/client/QuorumJournalManager.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.net.URI; import java.net.URL; +import java.net.UnknownHostException; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -387,8 +388,12 @@ public class QuorumJournalManager implements JournalManager { List<InetSocketAddress> addrs = Lists.newArrayList(); for (String addr : parts) { - addrs.add(NetUtils.createSocketAddr( - addr, DFSConfigKeys.DFS_JOURNALNODE_RPC_PORT_DEFAULT)); + InetSocketAddress isa = NetUtils.createSocketAddr( + addr, DFSConfigKeys.DFS_JOURNALNODE_RPC_PORT_DEFAULT); + if (isa.isUnresolved()) { + throw new UnknownHostException(addr); + } + addrs.add(isa); } return addrs; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f2ab8b7/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/client/TestQJMWithFaults.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/client/TestQJMWithFaults.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/client/TestQJMWithFaults.java index 2e38d5f..3a441b5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/client/TestQJMWithFaults.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/client/TestQJMWithFaults.java @@ -27,7 +27,9 @@ import java.io.Closeable; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.net.InetSocketAddress; +import java.net.URI; import java.net.URISyntaxException; +import java.net.UnknownHostException; import java.util.List; import java.util.Map; import java.util.Random; @@ -53,7 +55,9 @@ import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.ipc.ProtobufRpcEngine; import org.apache.hadoop.test.GenericTestUtils; import org.apache.log4j.Level; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -125,7 +129,10 @@ public class TestQJMWithFaults { } return ret; } - + + @Rule + public ExpectedException expectedException = ExpectedException.none(); + /** * Sets up two of the nodes to each drop a single RPC, at all * possible combinations of RPCs. This may result in the @@ -186,6 +193,16 @@ public class TestQJMWithFaults { } /** + * Expect {@link UnknownHostException} if a hostname can't be resolved. + */ + @Test + public void testUnresolvableHostName() throws Exception { + expectedException.expect(UnknownHostException.class); + new QuorumJournalManager(conf, + new URI("qjournal://" + "bogus:12345" + "/" + JID), FAKE_NSINFO); + } + + /** * Test case in which three JournalNodes randomly flip flop between * up and down states every time they get an RPC. * --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org