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 ae...@apache.org on 2016/04/14 08:15:19 UTC
[12/40] hadoop git commit: YARN-4927.
TestRMHA#testTransitionedToActiveRefreshFail fails with FairScheduler. (Bibin
A Chundatt via kasha)
YARN-4927. TestRMHA#testTransitionedToActiveRefreshFail fails with FairScheduler. (Bibin A Chundatt via kasha)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ff95fd54
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ff95fd54
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ff95fd54
Branch: refs/heads/HDFS-7240
Commit: ff95fd547b3030529983fa4e701ac728c54ab63a
Parents: 1fec06e
Author: Karthik Kambatla <ka...@apache.org>
Authored: Sat Apr 9 10:31:02 2016 -0700
Committer: Karthik Kambatla <ka...@apache.org>
Committed: Sat Apr 9 10:31:02 2016 -0700
----------------------------------------------------------------------
.../server/resourcemanager/AdminService.java | 6 ++-
.../yarn/server/resourcemanager/TestRMHA.java | 42 +++++++++++++-------
2 files changed, 32 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ff95fd54/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java
index fc530e3..f75219b 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java
@@ -682,7 +682,11 @@ public class AdminService extends CompositeService implements
return conf;
}
- private void refreshAll() throws ServiceFailedException {
+ /*
+ * Visibility could be private for test its made as default
+ */
+ @VisibleForTesting
+ void refreshAll() throws ServiceFailedException {
try {
refreshQueues(RefreshQueuesRequest.newInstance());
refreshNodes(RefreshNodesRequest.newInstance(DecommissionType.NORMAL));
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ff95fd54/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
index 70bba15..abd59b2 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.ha.HAServiceProtocol;
import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState;
import org.apache.hadoop.ha.HAServiceProtocol.StateChangeRequestInfo;
import org.apache.hadoop.ha.HealthCheckFailedException;
+import org.apache.hadoop.ha.ServiceFailedException;
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.security.AccessControlException;
@@ -54,7 +55,6 @@ import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptState;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics;
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.junit.Assert;
@@ -584,19 +584,28 @@ public class TestRMHA {
assertEquals(0, rm.getRMContext().getRMApps().size());
}
- @Test(timeout = 90000)
+ @Test(timeout = 9000000)
public void testTransitionedToActiveRefreshFail() throws Exception {
configuration.setBoolean(YarnConfiguration.AUTO_FAILOVER_ENABLED, false);
- YarnConfiguration conf = new YarnConfiguration(configuration);
- configuration = new CapacitySchedulerConfiguration(conf);
rm = new MockRM(configuration) {
@Override
protected AdminService createAdminService() {
return new AdminService(this, getRMContext()) {
+ int counter = 0;
@Override
protected void setConfig(Configuration conf) {
super.setConfig(configuration);
}
+
+ @Override
+ protected void refreshAll() throws ServiceFailedException {
+ if (counter == 0) {
+ counter++;
+ throw new ServiceFailedException("Simulate RefreshFail");
+ } else {
+ super.refreshAll();
+ }
+ }
};
}
@@ -611,23 +620,26 @@ public class TestRMHA {
final StateChangeRequestInfo requestInfo =
new StateChangeRequestInfo(
HAServiceProtocol.RequestSource.REQUEST_BY_USER);
-
- configuration.set("yarn.scheduler.capacity.root.default.capacity", "100");
+ FailFastDispatcher dispatcher =
+ ((FailFastDispatcher) rm.rmContext.getDispatcher());
+ // Verify transistion to transitionToStandby
rm.adminService.transitionToStandby(requestInfo);
- assertEquals(HAServiceState.STANDBY, rm.getRMContext().getHAServiceState());
- configuration.set("yarn.scheduler.capacity.root.default.capacity", "200");
+ assertEquals("Fatal Event should be 0", 0, dispatcher.getEventCount());
+ assertEquals("HA state should be in standBy State", HAServiceState.STANDBY,
+ rm.getRMContext().getHAServiceState());
try {
+ // Verify refreshAll call failure and check fail Event is dispatched
rm.adminService.transitionToActive(requestInfo);
+ Assert.fail("Transistion to Active should have failed for refreshAll()");
} catch (Exception e) {
- assertTrue("Error on refreshAll during transistion to Active".contains(e
- .getMessage()));
+ assertTrue("Service fail Exception expected",
+ e instanceof ServiceFailedException);
}
- FailFastDispatcher dispatcher =
- ((FailFastDispatcher) rm.rmContext.getDispatcher());
+ // Since refreshAll failed we are expecting fatal event to be send
+ // Then fatal event is send RM will shutdown
dispatcher.await();
- assertEquals(1, dispatcher.getEventCount());
- // Making correct conf and check the state
- configuration.set("yarn.scheduler.capacity.root.default.capacity", "100");
+ assertEquals("Fatal Event to be received", 1, dispatcher.getEventCount());
+ // Check of refreshAll success HA can be active
rm.adminService.transitionToActive(requestInfo);
assertEquals(HAServiceState.ACTIVE, rm.getRMContext().getHAServiceState());
rm.adminService.transitionToStandby(requestInfo);