From 2e789eb2261fa607489d8ae630fb77e8147d0266 Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Tue, 7 Oct 2014 14:10:39 +0000 Subject: [PATCH] MAPREDUCE-6029. TestCommitterEventHandler fails in trunk. Contributed by Mit Desai --- hadoop-mapreduce-project/CHANGES.txt | 3 +++ .../v2/app/commit/TestCommitterEventHandler.java | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 8bc1e533ea..1adf7cf66c 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -411,6 +411,9 @@ Release 2.6.0 - UNRELEASED MAPREDUCE-6094. TestMRCJCFileInputFormat.testAddInputPath() fails on trunk (Akira AJISAKA via jlowe) + MAPREDUCE-6029. TestCommitterEventHandler fails in trunk (Mit Desai via + jlowe) + Release 2.5.1 - 2014-09-05 INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/commit/TestCommitterEventHandler.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/commit/TestCommitterEventHandler.java index 83e43f5ffa..a553bbdab2 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/commit/TestCommitterEventHandler.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/commit/TestCommitterEventHandler.java @@ -58,6 +58,7 @@ import org.apache.hadoop.mapreduce.v2.app.job.event.JobCommitFailedEvent; import org.apache.hadoop.mapreduce.v2.util.MRApps; import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hadoop.util.Time; import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.event.Event; @@ -84,8 +85,12 @@ public synchronized void handle(Event event) { public synchronized Event getAndClearEvent() throws InterruptedException { if (event == null) { - //Wait for at most 10 ms - wait(100); + final long waitTime = 5000; + long waitStartTime = Time.monotonicNow(); + while(event == null && Time.monotonicNow() - waitStartTime < waitTime) { + //Wait for at most 5 sec + wait(waitTime); + } } Event e = event; event = null;