You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by wh...@apache.org on 2014/11/26 19:41:41 UTC
hadoop git commit: HDFS-7444. convertToBlockUnderConstruction should
preserve BlockCollection. Contributed by Haohui Mai.
Repository: hadoop
Updated Branches:
refs/heads/trunk 058af60c5 -> f5b163117
HDFS-7444. convertToBlockUnderConstruction should preserve BlockCollection. Contributed by Haohui Mai.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f5b16311
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f5b16311
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f5b16311
Branch: refs/heads/trunk
Commit: f5b163117986886eaba8a0cc255ec741dd14c4c6
Parents: 058af60
Author: Haohui Mai <wh...@apache.org>
Authored: Wed Nov 26 10:37:01 2014 -0800
Committer: Haohui Mai <wh...@apache.org>
Committed: Wed Nov 26 10:37:01 2014 -0800
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../hadoop/hdfs/server/blockmanagement/BlockInfo.java | 5 ++++-
.../org/apache/hadoop/hdfs/server/namenode/INodeFile.java | 1 -
.../hdfs/server/blockmanagement/TestReplicationPolicy.java | 9 +++++++++
4 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f5b16311/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 12219a0..936aa35 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -498,6 +498,9 @@ Release 2.7.0 - UNRELEASED
HDFS-7097. Allow block reports to be processed during checkpointing on
standby name node. (kihwal via wang)
+ HDFS-7444. convertToBlockUnderConstruction should preserve BlockCollection.
+ (wheat9)
+
Release 2.6.1 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f5b16311/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
index f547b1a..5d0b473 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
@@ -366,13 +366,16 @@ public class BlockInfo extends Block implements LightWeightGSet.LinkedElement {
public BlockInfoUnderConstruction convertToBlockUnderConstruction(
BlockUCState s, DatanodeStorageInfo[] targets) {
if(isComplete()) {
- return new BlockInfoUnderConstruction(this,
+ BlockInfoUnderConstruction ucBlock = new BlockInfoUnderConstruction(this,
getBlockCollection().getBlockReplication(), s, targets);
+ ucBlock.setBlockCollection(getBlockCollection());
+ return ucBlock;
}
// the block is already under construction
BlockInfoUnderConstruction ucBlock = (BlockInfoUnderConstruction)this;
ucBlock.setBlockUCState(s);
ucBlock.setExpectedLocations(targets);
+ ucBlock.setBlockCollection(getBlockCollection());
return ucBlock;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f5b16311/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
index dde36c3..ccf3df1 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
@@ -234,7 +234,6 @@ public class INodeFile extends INodeWithAdditionalFields
BlockInfoUnderConstruction ucBlock =
lastBlock.convertToBlockUnderConstruction(
BlockUCState.UNDER_CONSTRUCTION, locations);
- ucBlock.setBlockCollection(this);
setBlock(numBlocks() - 1, ucBlock);
return ucBlock;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f5b16311/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java
index ce2328c..ddbf7fc 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java
@@ -1226,6 +1226,15 @@ public class TestReplicationPolicy {
final BlockInfoUnderConstruction ucBlock =
info.convertToBlockUnderConstruction(BlockUCState.UNDER_CONSTRUCTION,
storageAry);
+ DatanodeStorageInfo storage = mock(DatanodeStorageInfo.class);
+ DatanodeDescriptor dn = mock(DatanodeDescriptor.class);
+ when(dn.isDecommissioned()).thenReturn(true);
+ when(storage.getState()).thenReturn(DatanodeStorage.State.NORMAL);
+ when(storage.getDatanodeDescriptor()).thenReturn(dn);
+ when(storage.removeBlock(any(BlockInfo.class))).thenReturn(true);
+ when(storage.addBlock(any(BlockInfo.class))).thenReturn(true);
+ ucBlock.addStorage(storage);
+
when(mbc.setLastBlock((BlockInfo) any(), (DatanodeStorageInfo[]) any()))
.thenReturn(ucBlock);