Repository: tez Updated Branches: refs/heads/branch-0.8 92f0104be -> bf3666b14
TEZ-3616. TestMergeManager#testLocalDiskMergeMultipleTasks fails intermittently (Fei Hui via harishjp) (cherry picked from commit fb0e45bf7e1d999aba5f60db2b9898ed65537fe5) Project: http://git-wip-us.apache.org/repos/asf/tez/repo Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/bf3666b1 Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/bf3666b1 Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/bf3666b1 Branch: refs/heads/branch-0.8 Commit: bf3666b14af44933abf2330e7847d94becd936c6 Parents: 92f0104 Author: Harish JP <[email protected]> Authored: Wed Apr 19 21:14:01 2017 +0530 Committer: Harish JP <[email protected]> Committed: Wed Apr 19 21:20:56 2017 +0530 ---------------------------------------------------------------------- .../orderedgrouped/TestMergeManager.java | 26 ++++++++++++-------- 1 file changed, 16 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tez/blob/bf3666b1/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/TestMergeManager.java ---------------------------------------------------------------------- diff --git a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/TestMergeManager.java b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/TestMergeManager.java index 9209ff4..1d03a04 100644 --- a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/TestMergeManager.java +++ b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/TestMergeManager.java @@ -766,7 +766,7 @@ public class TestMergeManager { } - void testLocalDiskMergeMultipleTasks(boolean interruptInMiddle) + void testLocalDiskMergeMultipleTasks(final boolean interruptInMiddle) throws IOException, InterruptedException { Configuration conf = new TezConfiguration(defaultConf); conf.setBoolean(TezRuntimeConfiguration.TEZ_RUNTIME_COMPRESS, false); @@ -791,7 +791,21 @@ public class TestMergeManager { MergeManager t0mergeManagerReal = new MergeManager(conf, localFs, localDirAllocator, t0inputContext, null, null, null, null, - t0exceptionReporter, 2000000, null, false, -1); + t0exceptionReporter, 2000000, null, false, -1) { + // override for interruptInMiddle testing + @Override + public synchronized void closeOnDiskFile(FileChunk file) { + if (interruptInMiddle) { + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + return; + } + } + super.closeOnDiskFile(file); + } + }; MergeManager t0mergeManager = spy(t0mergeManagerReal); t0mergeManager.configureAndStart(); @@ -855,14 +869,6 @@ public class TestMergeManager { Assert.assertEquals(1, t0mergeManager.onDiskMapOutputs.size()); } else { - doAnswer(new Answer() { - @Override public Object answer(InvocationOnMock invocationOnMock) throws Throwable { - //Simulate artificial delay so that interrupting thread can get a chance - Thread.sleep(2000); - return invocationOnMock.callRealMethod(); - } - }).when(t0mergeManager).closeOnDiskFile(any(FileChunk.class)); - //Start Interrupting thread Thread interruptingThread = new Thread(new InterruptingThread(t0mergeManager.onDiskMerger)); interruptingThread.start();
