Author: todd
Date: Wed Jan 16 04:22:38 2013
New Revision: 1433820
URL: http://svn.apache.org/viewvc?rev=1433820&view=rev
Log:
Revert r1433755: HDFS-4288. NN accepts incremental BR as IBR in safemode.
Contributed by Daryn Sharp.
This commit caused TestBlockManager to fail.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1433820&r1=1433819&r2=1433820&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Jan 16
04:22:38 2013
@@ -716,9 +716,6 @@ Release 2.0.3-alpha - Unreleased
HDFS-1245. Pluggable block id generation. (shv)
- HDFS-4288. NN accepts incremental BR as IBR in safemode
- (Daryn Sharp via todd)
-
BREAKDOWN OF HDFS-3077 SUBTASKS
HDFS-3077. Quorum-based protocol for reading and writing edit logs.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java?rev=1433820&r1=1433819&r2=1433820&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
Wed Jan 16 04:22:38 2013
@@ -62,7 +62,6 @@ import org.apache.hadoop.hdfs.server.com
import org.apache.hadoop.hdfs.server.namenode.FSClusterStats;
import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.hdfs.server.namenode.Namesystem;
-import org.apache.hadoop.hdfs.server.namenode.metrics.NameNodeMetrics;
import org.apache.hadoop.hdfs.server.protocol.BlockCommand;
import org.apache.hadoop.hdfs.server.protocol.BlocksWithLocations;
import
org.apache.hadoop.hdfs.server.protocol.BlocksWithLocations.BlockWithLocations;
@@ -1577,10 +1576,7 @@ public class BlockManager {
}
// Log the block report processing stats from Namenode perspective
- final NameNodeMetrics metrics = NameNode.getNameNodeMetrics();
- if (metrics != null) {
- metrics.addBlockReport((int) (endTime - startTime));
- }
+ NameNode.getNameNodeMetrics().addBlockReport((int) (endTime - startTime));
blockLog.info("BLOCK* processReport: from "
+ nodeID + ", blocks: " + newReport.getNumberOfBlocks()
+ ", processing time: " + (endTime - startTime) + " msecs");
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java?rev=1433820&r1=1433819&r2=1433820&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
Wed Jan 16 04:22:38 2013
@@ -547,7 +547,6 @@ public class DatanodeDescriptor extends
@Override
public void updateRegInfo(DatanodeID nodeReg) {
super.updateRegInfo(nodeReg);
- firstBlockReport = true; // must re-process IBR after re-registration
}
/**
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java?rev=1433820&r1=1433819&r2=1433820&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
Wed Jan 16 04:22:38 2013
@@ -419,7 +419,7 @@ public class DatanodeManager {
}
/** Add a datanode. */
- void addDatanode(final DatanodeDescriptor node) {
+ private void addDatanode(final DatanodeDescriptor node) {
// To keep host2DatanodeMap consistent with datanodeMap,
// remove from host2DatanodeMap the datanodeDescriptor removed
// from datanodeMap before adding node to host2DatanodeMap.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java?rev=1433820&r1=1433819&r2=1433820&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
Wed Jan 16 04:22:38 2013
@@ -34,16 +34,13 @@ import org.apache.hadoop.hdfs.DFSConfigK
import org.apache.hadoop.hdfs.DFSTestUtil;
import org.apache.hadoop.hdfs.HdfsConfiguration;
import org.apache.hadoop.hdfs.protocol.Block;
-import org.apache.hadoop.hdfs.protocol.BlockListAsLongs;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
import
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor.BlockTargetPair;
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
-import org.apache.hadoop.hdfs.server.protocol.DatanodeRegistration;
import org.apache.hadoop.net.NetworkTopology;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-import static org.mockito.Mockito.*;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
@@ -488,70 +485,4 @@ public class TestBlockManager {
new NumberReplicas(),
UnderReplicatedBlocks.QUEUE_HIGHEST_PRIORITY));
}
-
- @Test
- public void testSafeModeIBR() throws Exception {
- DatanodeDescriptor node = spy(nodes.get(0));
- node.setStorageID("dummy-storage");
- node.isAlive = true;
-
- DatanodeRegistration nodeReg =
- new DatanodeRegistration(node, null, null, "");
-
- // pretend to be in safemode
- doReturn(true).when(fsn).isInStartupSafeMode();
-
- // register new node
- bm.getDatanodeManager().registerDatanode(nodeReg);
- bm.getDatanodeManager().addDatanode(node); // swap in spy
- assertEquals(node, bm.getDatanodeManager().getDatanode(node));
- assertTrue(node.isFirstBlockReport());
- // send block report, should be processed
- reset(node);
- bm.processReport(node, "pool", new BlockListAsLongs());
- verify(node).receivedBlockReport();
- assertFalse(node.isFirstBlockReport());
- // send block report again, should NOT be processed
- reset(node);
- bm.processReport(node, "pool", new BlockListAsLongs());
- verify(node, never()).receivedBlockReport();
- assertFalse(node.isFirstBlockReport());
-
- // re-register as if node restarted, should update existing node
- bm.getDatanodeManager().removeDatanode(node);
- reset(node);
- bm.getDatanodeManager().registerDatanode(nodeReg);
- verify(node).updateRegInfo(nodeReg);
- assertTrue(node.isFirstBlockReport()); // ready for report again
- // send block report, should be processed after restart
- reset(node);
- bm.processReport(node, "pool", new BlockListAsLongs());
- verify(node).receivedBlockReport();
- assertFalse(node.isFirstBlockReport());
- }
-
- @Test
- public void testSafeModeIBRAfterIncremental() throws Exception {
- DatanodeDescriptor node = spy(nodes.get(0));
- node.setStorageID("dummy-storage");
- node.isAlive = true;
-
- DatanodeRegistration nodeReg =
- new DatanodeRegistration(node, null, null, "");
-
- // pretend to be in safemode
- doReturn(true).when(fsn).isInStartupSafeMode();
-
- // register new node
- bm.getDatanodeManager().registerDatanode(nodeReg);
- bm.getDatanodeManager().addDatanode(node); // swap in spy
- assertEquals(node, bm.getDatanodeManager().getDatanode(node));
- assertTrue(node.isFirstBlockReport());
- // send block report while pretending to already have blocks
- reset(node);
- doReturn(1).when(node).numBlocks();
- bm.processReport(node, "pool", new BlockListAsLongs());
- verify(node).receivedBlockReport();
- assertFalse(node.isFirstBlockReport());
- }
}