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 jl...@apache.org on 2016/01/12 16:16:43 UTC
hadoop git commit: YARN-3842. NMProxy should retry on
NMNotYetReadyException. (Robert Kanter via kasha) (cherry picked from commit
5ebf2817e58e1be8214dc1916a694a912075aa0a)
Repository: hadoop
Updated Branches:
refs/heads/branch-2.6 16d6b9d3e -> d43a65137
YARN-3842. NMProxy should retry on NMNotYetReadyException. (Robert Kanter via kasha)
(cherry picked from commit 5ebf2817e58e1be8214dc1916a694a912075aa0a)
Conflicts:
hadoop-yarn-project/CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d43a6513
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d43a6513
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d43a6513
Branch: refs/heads/branch-2.6
Commit: d43a651374476c0faf07a4cd63c8b1b91923690a
Parents: 16d6b9d
Author: Jason Lowe <jl...@apache.org>
Authored: Tue Jan 12 15:16:08 2016 +0000
Committer: Jason Lowe <jl...@apache.org>
Committed: Tue Jan 12 15:16:08 2016 +0000
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 +++
.../apache/hadoop/yarn/client/ServerProxy.java | 2 ++
.../containermanager/TestNMProxy.java | 20 +++++++++++++++++++-
3 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d43a6513/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 8f35efc..1f75437 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -46,6 +46,9 @@ Release 2.6.4 - UNRELEASED
YARN-3849. Too much of preemption activity causing continuos killing of
containers across queues. (Sunil G via wangda)
+ YARN-3842. NMProxy should retry on NMNotYetReadyException.
+ (Robert Kanter via kasha)
+
Release 2.6.3 - 2015-12-17
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d43a6513/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/ServerProxy.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/ServerProxy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/ServerProxy.java
index 6024560..e9bcf8d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/ServerProxy.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/ServerProxy.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.io.retry.RetryProxy;
import org.apache.hadoop.ipc.RetriableException;
import org.apache.hadoop.net.ConnectTimeoutException;
import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.yarn.exceptions.NMNotYetReadyException;
import org.apache.hadoop.yarn.ipc.YarnRPC;
import com.google.common.base.Preconditions;
@@ -74,6 +75,7 @@ public class ServerProxy {
exceptionToPolicyMap.put(UnknownHostException.class, retryPolicy);
exceptionToPolicyMap.put(RetriableException.class, retryPolicy);
exceptionToPolicyMap.put(SocketException.class, retryPolicy);
+ exceptionToPolicyMap.put(NMNotYetReadyException.class, retryPolicy);
return RetryPolicies.retryByException(RetryPolicies.TRY_ONCE_THEN_FAIL,
exceptionToPolicyMap);
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d43a6513/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestNMProxy.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestNMProxy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestNMProxy.java
index 67f540c..0b372be 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestNMProxy.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestNMProxy.java
@@ -54,6 +54,7 @@ public class TestNMProxy extends BaseContainerManagerTest {
}
int retryCount = 0;
+ boolean shouldThrowNMNotYetReadyException = false;
@Before
public void setUp() throws Exception {
@@ -72,7 +73,15 @@ public class TestNMProxy extends BaseContainerManagerTest {
StartContainersRequest requests) throws YarnException, IOException {
if (retryCount < 5) {
retryCount++;
- throw new java.net.ConnectException("start container exception");
+ if (shouldThrowNMNotYetReadyException) {
+ // This causes super to throw an NMNotYetReadyException
+ containerManager.setBlockNewContainerRequests(true);
+ } else {
+ throw new java.net.ConnectException("start container exception");
+ }
+ } else {
+ // This stops super from throwing an NMNotYetReadyException
+ containerManager.setBlockNewContainerRequests(false);
}
return super.startContainers(requests);
}
@@ -126,16 +135,25 @@ public class TestNMProxy extends BaseContainerManagerTest {
NMProxy.createNMProxy(conf, ContainerManagementProtocol.class, ugi,
YarnRPC.create(conf), address);
+ retryCount = 0;
+ shouldThrowNMNotYetReadyException = false;
proxy.startContainers(allRequests);
Assert.assertEquals(5, retryCount);
retryCount = 0;
+ shouldThrowNMNotYetReadyException = false;
proxy.stopContainers(Records.newRecord(StopContainersRequest.class));
Assert.assertEquals(5, retryCount);
retryCount = 0;
+ shouldThrowNMNotYetReadyException = false;
proxy.getContainerStatuses(Records
.newRecord(GetContainerStatusesRequest.class));
Assert.assertEquals(5, retryCount);
+
+ retryCount = 0;
+ shouldThrowNMNotYetReadyException = true;
+ proxy.startContainers(allRequests);
+ Assert.assertEquals(5, retryCount);
}
}