You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by ji...@apache.org on 2011/03/03 03:44:33 UTC

svn commit: r1076505 - in /hadoop/hdfs/branches/HDFS-1052: ./ src/java/org/apache/hadoop/hdfs/protocol/ src/java/org/apache/hadoop/hdfs/server/datanode/ src/test/hdfs/org/apache/hadoop/hdfs/

Author: jitendra
Date: Thu Mar  3 02:44:33 2011
New Revision: 1076505

URL: http://svn.apache.org/viewvc?rev=1076505&view=rev
Log:
Hdfs Federation: TestFileAppend2, TestFileAppend3 and TestBlockTokenWithDFS failing.

Modified:
    hadoop/hdfs/branches/HDFS-1052/CHANGES.txt
    hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/protocol/ExtendedBlock.java
    hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
    hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/MiniDFSCluster.java
    hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/TestPipelines.java

Modified: hadoop/hdfs/branches/HDFS-1052/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/CHANGES.txt?rev=1076505&r1=1076504&r2=1076505&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/CHANGES.txt (original)
+++ hadoop/hdfs/branches/HDFS-1052/CHANGES.txt Thu Mar  3 02:44:33 2011
@@ -159,6 +159,9 @@ Trunk (unreleased changes)
     HDFS-1702. Federation: fix TestBackupNode and TestRefreshNamendoes
     failures. (suresh)
 
+    HDFS-1706. Federation: TestFileAppend2, TestFileAppend3 and 
+    TestBlockTokenWithDFS failing. (jitendra)
+
   IMPROVEMENTS
 
     HDFS-1510. Added test-patch.properties required by test-patch.sh (nigel)

Modified: hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/protocol/ExtendedBlock.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/protocol/ExtendedBlock.java?rev=1076505&r1=1076504&r2=1076505&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/protocol/ExtendedBlock.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/protocol/ExtendedBlock.java Thu Mar  3 02:44:33 2011
@@ -50,7 +50,7 @@ public class ExtendedBlock implements Wr
   }
 
   public ExtendedBlock(final ExtendedBlock b) {
-    this(b.poolId, b.block);
+    this(b.poolId, new Block(b.block));
   }
   
   public ExtendedBlock(final String poolId, final long blockId) {

Modified: hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java?rev=1076505&r1=1076504&r2=1076505&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java Thu Mar  3 02:44:33 2011
@@ -218,6 +218,11 @@ class DataXceiver extends DataTransferPr
                 " tcp no delay " + s.getTcpNoDelay());
     }
 
+    // We later mutate block's generation stamp and length, but we need to
+    // forward the original version of the block to downstream mirrors, so
+    // make a copy here.
+    final ExtendedBlock originalBlock = new ExtendedBlock(block);
+
     block.setNumBytes(dataXceiverServer.estimateBlockSize);
     LOG.info("Receiving block " + block + 
              " src: " + remoteAddress +
@@ -294,7 +299,7 @@ class DataXceiver extends DataTransferPr
           mirrorIn = new DataInputStream(NetUtils.getInputStream(mirrorSock));
 
           // Write header: Copied from DFSClient.java!
-          DataTransferProtocol.Sender.opWriteBlock(mirrorOut, block,
+          DataTransferProtocol.Sender.opWriteBlock(mirrorOut, originalBlock,
               pipelineSize, stage, newGs, minBytesRcvd, maxBytesRcvd, client,
               srcDataNode, targets, blockToken);
 

Modified: hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/MiniDFSCluster.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/MiniDFSCluster.java?rev=1076505&r1=1076504&r2=1076505&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/MiniDFSCluster.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/MiniDFSCluster.java Thu Mar  3 02:44:33 2011
@@ -975,7 +975,8 @@ public class MiniDFSCluster {
       System.out.println("Shutting down the namenode");
       nn.stop();
       nn.join();
-      nameNodes[nnIndex] = null;
+      Configuration conf = nameNodes[nnIndex].conf;
+      nameNodes[nnIndex] = new NameNodeInfo(null, conf);
     }
   }
 

Modified: hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/TestPipelines.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/TestPipelines.java?rev=1076505&r1=1076504&r2=1076505&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/TestPipelines.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/test/hdfs/org/apache/hadoop/hdfs/TestPipelines.java Thu Mar  3 02:44:33 2011
@@ -104,12 +104,15 @@ public class TestPipelines {
       filePath.toString(), FILE_SIZE - 1, FILE_SIZE).getLocatedBlocks();
 
     String bpid = cluster.getNamesystem().getBlockPoolId();
-    Replica r = DataNodeAdapter.fetchReplicaInfo(cluster.getDataNodes().get(1),
-        bpid, lb.get(0).getBlock().getBlockId());
-    assertTrue("Replica shouldn'e be null", r != null);
-    assertEquals(
-      "Should be RBW replica after sequence of calls append()/write()/hflush()",
-      HdfsConstants.ReplicaState.RBW, r.getState());
+    for (DataNode dn : cluster.getDataNodes()) {
+      Replica r = DataNodeAdapter.fetchReplicaInfo(dn, bpid, lb.get(0)
+          .getBlock().getBlockId());
+
+      assertTrue("Replica on DN " + dn + " shouldn't be null", r != null);
+      assertEquals("Should be RBW replica on " + dn
+          + " after sequence of calls " + "append()/write()/hflush()",
+          HdfsConstants.ReplicaState.RBW, r.getState());
+    }
     ofs.close();
   }