From eef3bafae8bc0fd31506637cd131599ec97f362f Mon Sep 17 00:00:00 2001 From: Vinayakumar B Date: Mon, 10 Sep 2018 09:22:59 +0530 Subject: [PATCH] HDFS-13895. EC: Fix Intermittent Failure in TestDFSStripedOutputStreamWithFailureWithRandomECPolicy. Contributed by Ayush Saxena. --- ...TestDFSStripedOutputStreamWithFailure.java | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java index 800fac1e79..ff521463f6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java @@ -244,26 +244,29 @@ public void testCloseWithExceptionsInStreamer() throws Exception { // Full stripe and a partial on non-cell boundary (cellSize * dataBlocks) + 123, }; - try { - for (int length: fileLengths) { - // select the two DNs with partial block to kill - final int[] dnIndex = {dataBlocks - 2, dataBlocks - 1}; - final int[] killPos = getKillPositions(length, dnIndex.length); - try { - LOG.info("runTestWithMultipleFailure2: length==" + length - + ", killPos=" + Arrays.toString(killPos) - + ", dnIndex=" + Arrays.toString(dnIndex)); - setup(conf); - runTest(length, killPos, dnIndex, false); - } catch (Throwable e) { - final String err = "failed, killPos=" + Arrays.toString(killPos) - + ", dnIndex=" + Arrays.toString(dnIndex) + ", length=" + length; - LOG.error(err); - throw e; - } + // select the two DNs with partial block to kill + int[] dnIndex = null; + if (parityBlocks > 1) { + dnIndex = new int[] {dataBlocks - 2, dataBlocks - 1}; + } else { + dnIndex = new int[] {dataBlocks - 1}; + } + for (int length : fileLengths) { + final int[] killPos = getKillPositions(length, dnIndex.length); + try { + LOG.info("runTestWithMultipleFailure2: length==" + length + ", killPos=" + + Arrays.toString(killPos) + ", dnIndex=" + + Arrays.toString(dnIndex)); + setup(conf); + runTest(length, killPos, dnIndex, false); + } catch (Throwable e) { + final String err = "failed, killPos=" + Arrays.toString(killPos) + + ", dnIndex=" + Arrays.toString(dnIndex) + ", length=" + length; + LOG.error(err); + throw e; + } finally { + tearDown(); } - } finally { - tearDown(); } }