HADOOP-10668. Addendum patch to fix TestZKFailoverController. Contributed by Ming Ma.

This commit is contained in:
cnauroth 2015-01-21 11:52:48 -08:00
parent db334bb862
commit 925c9fed33
2 changed files with 10 additions and 5 deletions

View File

@ -155,6 +155,11 @@ public void setUnreachable(int idx, boolean unreachable) {
/**
* Wait for the given HA service to enter the given HA state.
* This is based on the state of ZKFC, not the state of HA service.
* There could be difference between the two. For example,
* When the service becomes unhealthy, ZKFC will quit ZK election and
* transition to HAServiceState.INITIALIZING and remain in that state
* until the service becomes healthy.
*/
public void waitForHAState(int idx, HAServiceState state)
throws Exception {

View File

@ -211,8 +211,8 @@ public void testAutoFailoverOnBadHealth() throws Exception {
LOG.info("Faking svc0 unhealthy, should failover to svc1");
cluster.setHealthy(0, false);
LOG.info("Waiting for svc0 to enter standby state");
cluster.waitForHAState(0, HAServiceState.STANDBY);
LOG.info("Waiting for svc0 to enter initializing state");
cluster.waitForHAState(0, HAServiceState.INITIALIZING);
cluster.waitForHAState(1, HAServiceState.ACTIVE);
LOG.info("Allowing svc0 to be healthy again, making svc1 unreachable " +
@ -332,7 +332,7 @@ public void testBecomingActiveFails() throws Exception {
Mockito.verify(svc1.proxy, Mockito.timeout(2000).atLeastOnce())
.transitionToActive(Mockito.<StateChangeRequestInfo>any());
cluster.waitForHAState(0, HAServiceState.STANDBY);
cluster.waitForHAState(0, HAServiceState.INITIALIZING);
cluster.waitForHAState(1, HAServiceState.STANDBY);
LOG.info("Faking svc0 healthy again, should go back to svc0");
@ -587,12 +587,12 @@ public void testOneOfEverything() throws Exception {
// Failover by bad health
cluster.setHealthy(0, false);
cluster.waitForHAState(0, HAServiceState.STANDBY);
cluster.waitForHAState(0, HAServiceState.INITIALIZING);
cluster.waitForHAState(1, HAServiceState.ACTIVE);
cluster.setHealthy(1, true);
cluster.setHealthy(0, false);
cluster.waitForHAState(1, HAServiceState.ACTIVE);
cluster.waitForHAState(0, HAServiceState.STANDBY);
cluster.waitForHAState(0, HAServiceState.INITIALIZING);
cluster.setHealthy(0, true);
cluster.waitForHealthState(0, State.SERVICE_HEALTHY);