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);

Reply via email to