From 5d497abe21bc60f4a017792e5b3fd8cf9a1185be Mon Sep 17 00:00:00 2001 From: Tao Yang Date: Sat, 7 Sep 2019 07:39:02 +0800 Subject: [PATCH] YARN-9817. Fix failing testcases due to not initialized AsyncDispatcher - ArithmeticException: / by zero. Contributed by Prabhu Joseph. --- .../java/org/apache/hadoop/mapreduce/v2/app/TestMRApp.java | 4 +++- .../hadoop/mapreduce/v2/app/TestRuntimeEstimators.java | 6 +++--- .../hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java | 3 +++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRApp.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRApp.java index eaf107050d7..7e9ec7d4d15 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRApp.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRApp.java @@ -208,7 +208,9 @@ public class TestMRApp { @Test public void testUpdatedNodes() throws Exception { int runCount = 0; - Dispatcher disp = Mockito.spy(new AsyncDispatcher()); + AsyncDispatcher dispatcher = new AsyncDispatcher(); + dispatcher.init(new Configuration()); + Dispatcher disp = Mockito.spy(dispatcher); MRApp app = new MRAppWithHistory(2, 2, false, this.getClass().getName(), true, ++runCount, disp); Configuration conf = new Configuration(); diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java index d20b01212a5..da63b06eed5 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java @@ -128,6 +128,9 @@ public class TestRuntimeEstimators { estimator = testedEstimator; clock = new ControlledClock(); dispatcher = new AsyncDispatcher(); + Configuration conf = new Configuration(); + dispatcher.init(conf); + myJob = null; slotsInUse.set(0); completedMaps.set(0); @@ -137,8 +140,6 @@ public class TestRuntimeEstimators { clock.tickMsec(1000); - Configuration conf = new Configuration(); - myAppContext = new MyAppContext(MAP_TASKS, REDUCE_TASKS); myJob = myAppContext.getAllJobs().values().iterator().next(); @@ -165,7 +166,6 @@ public class TestRuntimeEstimators { dispatcher.register(TaskEventType.class, new SpeculationRequestEventHandler()); - dispatcher.init(conf); dispatcher.start(); diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java index 861dbfad52c..945b2543919 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java @@ -499,6 +499,8 @@ public class TestJobImpl { // not initializing dispatcher to avoid potential race condition between // the dispatcher thread & test thread - see MAPREDUCE-6831 AsyncDispatcher dispatcher = new AsyncDispatcher(); + dispatcher.init(conf); + OutputCommitter committer = new StubbedOutputCommitter() { @Override @@ -959,6 +961,7 @@ public class TestJobImpl { public void testJobPriorityUpdate() throws Exception { Configuration conf = new Configuration(); AsyncDispatcher dispatcher = new AsyncDispatcher(); + dispatcher.init(conf); Priority submittedPriority = Priority.newInstance(5); AppContext mockContext = mock(AppContext.class);