HDFS-13004. TestLeaseRecoveryStriped.testLeaseRecovery is failing when safeLength is 0MB or larger than the test file. (Zsolt Venczel via lei)
(cherry picked from commit 3bd9ea63df769345a9d02a404cfb61323a4cd7e3) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/db8345fa Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/db8345fa Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/db8345fa Branch: refs/heads/branch-3 Commit: db8345fa9cd124728d935f725525e2626438b4c1 Parents: 8274109 Author: Lei Xu <l...@apache.org> Authored: Tue Jan 16 15:15:11 2018 -0800 Committer: Lei Xu <l...@apache.org> Committed: Tue Jan 16 15:19:09 2018 -0800 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hdfs/StripedFileTestUtil.java | 7 ++++--- .../org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java | 11 +++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/db8345fa/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java index 08bf20a..13ca390 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java @@ -363,11 +363,12 @@ public class StripedFileTestUtil { List<List<LocatedBlock>> blockGroupList = new ArrayList<>(); LocatedBlocks lbs = dfs.getClient().getLocatedBlocks(srcPath.toString(), 0L, Long.MAX_VALUE); - int expectedNumGroup = 0; + if (length > 0) { - expectedNumGroup = (length - 1) / blkGroupSize + 1; + int expectedNumGroup = (length - 1) / blkGroupSize + 1; + + assertEquals(expectedNumGroup, lbs.getLocatedBlocks().size()); } - assertEquals(expectedNumGroup, lbs.getLocatedBlocks().size()); final ErasureCodingPolicy ecPolicy = dfs.getErasureCodingPolicy(srcPath); final int cellSize = ecPolicy.getCellSize(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/db8345fa/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java index 36ac8b3..d74f193 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java @@ -85,6 +85,7 @@ public class TestLeaseRecoveryStriped { private Configuration conf; private final Path dir = new Path("/" + this.getClass().getSimpleName()); final Path p = new Path(dir, "testfile"); + private final int testFileLength = (stripesPerBlock - 1) * stripeSize; @Before public void setup() throws IOException { @@ -191,17 +192,20 @@ public class TestLeaseRecoveryStriped { private void runTest(int[] blockLengths, long safeLength) throws Exception { writePartialBlocks(blockLengths); + + int checkDataLength = Math.min(testFileLength, (int)safeLength); + recoverLease(); List<Long> oldGS = new ArrayList<>(); oldGS.add(1001L); - StripedFileTestUtil.checkData(dfs, p, (int)safeLength, + StripedFileTestUtil.checkData(dfs, p, checkDataLength, new ArrayList<DatanodeInfo>(), oldGS, blockGroupSize); // After recovery, storages are reported by primary DN. we should verify // storages reported by blockReport. cluster.restartNameNode(true); cluster.waitFirstBRCompleted(0, 10000); - StripedFileTestUtil.checkData(dfs, p, (int)safeLength, + StripedFileTestUtil.checkData(dfs, p, checkDataLength, new ArrayList<DatanodeInfo>(), oldGS, blockGroupSize); } @@ -219,12 +223,11 @@ public class TestLeaseRecoveryStriped { final FSDataOutputStream out = dfs.create(p); final DFSStripedOutputStream stripedOut = (DFSStripedOutputStream) out .getWrappedStream(); - int length = (stripesPerBlock - 1) * stripeSize; int[] posToKill = getPosToKill(blockLengths); int checkingPos = nextCheckingPos(posToKill, 0); Set<Integer> stoppedStreamerIndexes = new HashSet<>(); try { - for (int pos = 0; pos < length; pos++) { + for (int pos = 0; pos < testFileLength; pos++) { out.write(StripedFileTestUtil.getByte(pos)); if (pos == checkingPos) { for (int index : getIndexToStop(posToKill, pos)) { --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org