HDFS-8460. Erasure Coding: stateful read result doesn't match data occasionally because of flawed test. Contributed by Walter Su.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/aa1e4182 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/aa1e4182 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/aa1e4182 Branch: refs/heads/HDFS-7285-REBASE Commit: aa1e4182c107fec9f109bb7a7ffecc0f15eb283a Parents: c74cf3f Author: Zhe Zhang <zhezh...@cloudera.com> Authored: Fri Jun 5 13:39:37 2015 -0700 Committer: Vinayakumar B <vinayakum...@apache.org> Committed: Thu Aug 13 17:04:41 2015 +0530 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt | 3 +++ .../src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java | 2 ++ .../java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java | 5 +++++ 3 files changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/aa1e4182/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt index 9b05d2b..61d7a76 100755 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt @@ -286,3 +286,6 @@ HDFS-8319. Erasure Coding: support decoding for stateful read. (Jing Zhao via zhz) + + HDFS-8460. Erasure Coding: stateful read result doesn't match data + occasionally because of flawed test. (Walter Su via zhz) http://git-wip-us.apache.org/repos/asf/hadoop/blob/aa1e4182/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java index bbbcc60..f084d86 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java @@ -1884,6 +1884,7 @@ public class DFSTestUtil { /** * Creates the metadata of a file in striped layout. This method only * manipulates the NameNode state without injecting data to DataNode. + * You should disable periodical heartbeat before use this. * @param file Path of the file to create * @param dir Parent path of the file * @param numBlocks Number of striped block groups to add to the file @@ -1933,6 +1934,7 @@ public class DFSTestUtil { * Adds a striped block group to a file. This method only manipulates NameNode * states of the file and the block without injecting data to DataNode. * It does mimic block reports. + * You should disable periodical heartbeat before use this. * @param dataNodes List DataNodes to host the striped block group * @param previous Previous block in the file * @param numStripes Number of stripes in each block group http://git-wip-us.apache.org/repos/asf/hadoop/blob/aa1e4182/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java index de43441..b53983b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java @@ -32,6 +32,8 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import org.apache.hadoop.hdfs.server.datanode.DataNode; +import org.apache.hadoop.hdfs.server.datanode.DataNodeTestUtils; import org.apache.hadoop.hdfs.server.datanode.SimulatedFSDataset; import org.apache.hadoop.hdfs.server.namenode.ErasureCodingSchemaManager; import org.apache.hadoop.hdfs.util.StripedBlockUtil; @@ -71,6 +73,9 @@ public class TestDFSStripedInputStream { cluster = new MiniDFSCluster.Builder(conf).numDataNodes( DATA_BLK_NUM + PARITY_BLK_NUM).build(); cluster.waitActive(); + for (DataNode dn : cluster.getDataNodes()) { + DataNodeTestUtils.setHeartbeatsDisabledForTests(dn, true); + } fs = cluster.getFileSystem(); fs.mkdirs(dirPath); fs.getClient().createErasureCodingZone(dirPath.toString(), null, CELLSIZE);