From 0b55634b9ce1357e4ce1f1d130388afd4ff59aeb Mon Sep 17 00:00:00 2001 From: cnauroth Date: Mon, 19 Jan 2015 11:28:30 -0800 Subject: [PATCH] HADOOP-10668. TestZKFailoverControllerStress#testExpireBackAndForth occasionally fails. Contributed by Ming Ma. (cherry picked from commit 7fc1f2f5cf4312d72aeffb1a9cef497d00c60adb) --- .../main/java/org/apache/hadoop/ha/ZKFailoverController.java | 4 +++- .../src/test/java/org/apache/hadoop/ha/MiniZKFCCluster.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ZKFailoverController.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ZKFailoverController.java index 46c485b1d9a..f58c3f4de99 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ZKFailoverController.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/ZKFailoverController.java @@ -153,7 +153,9 @@ public abstract class ZKFailoverController { public HAServiceTarget getLocalTarget() { return localTarget; } - + + HAServiceState getServiceState() { return serviceState; } + public int run(final String[] args) throws Exception { if (!localTarget.isAutoFailoverEnabled()) { LOG.fatal("Automatic failover is not enabled for " + localTarget + "." + diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/MiniZKFCCluster.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/MiniZKFCCluster.java index b0d6d6250a3..5aee61166ff 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/MiniZKFCCluster.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/MiniZKFCCluster.java @@ -163,8 +163,8 @@ public class MiniZKFCCluster { */ public void waitForHAState(int idx, HAServiceState state) throws Exception { - DummyHAService svc = getService(idx); - while (svc.state != state) { + DummyZKFC svc = getZkfc(idx); + while (svc.getServiceState() != state) { ctx.checkException(); Thread.sleep(50); }