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 wa...@apache.org on 2016/04/21 00:37:14 UTC
[09/13] hadoop git commit: HDFS-10265. OEV tool fails to read edit
xml file if OP_UPDATE_BLOCKS has no BLOCK tag (Wan Chang via cmccabe)
HDFS-10265. OEV tool fails to read edit xml file if OP_UPDATE_BLOCKS has no BLOCK tag (Wan Chang via cmccabe)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d04d0ce8
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d04d0ce8
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d04d0ce8
Branch: refs/heads/YARN-3368
Commit: d04d0ce851d0992e91626df4fb6d852ebe89633c
Parents: 38aed9d
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Mon Apr 18 11:45:18 2016 -0700
Committer: Wangda Tan <wa...@apache.org>
Committed: Wed Apr 20 15:36:46 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/hdfs/server/namenode/FSEditLogOp.java | 3 ++-
.../test/java/org/apache/hadoop/hdfs/DFSTestUtil.java | 12 ++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d04d0ce8/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java
index c4e1a78..a3285a9 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java
@@ -1096,7 +1096,8 @@ public abstract class FSEditLogOp {
@Override void fromXml(Stanza st) throws InvalidXmlException {
this.path = st.getValue("PATH");
- List<Stanza> blocks = st.getChildren("BLOCK");
+ List<Stanza> blocks = st.hasChildren("BLOCK") ?
+ st.getChildren("BLOCK") : new ArrayList<Stanza>();
this.blocks = new Block[blocks.size()];
for (int i = 0; i < blocks.size(); i++) {
this.blocks[i] = FSEditLogOp.blockFromXml(blocks.get(i));
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d04d0ce8/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 8a52bbb..d159fc5 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
@@ -1272,6 +1272,18 @@ public class DFSTestUtil {
// OP_APPEND 47
FSDataOutputStream s2 = filesystem.append(pathFileCreate, 4096, null);
s2.close();
+
+ // OP_UPDATE_BLOCKS 25
+ final String updateBlockFile = "/update_blocks";
+ FSDataOutputStream fout = filesystem.create(new Path(updateBlockFile), true, 4096, (short)1, 4096L);
+ fout.write(1);
+ fout.hflush();
+ long fileId = ((DFSOutputStream)fout.getWrappedStream()).getFileId();
+ DFSClient dfsclient = DFSClientAdapter.getDFSClient(filesystem);
+ LocatedBlocks blocks = dfsclient.getNamenode().getBlockLocations(updateBlockFile, 0, Integer.MAX_VALUE);
+ dfsclient.getNamenode().abandonBlock(blocks.get(0).getBlock(), fileId, updateBlockFile, dfsclient.clientName);
+ fout.close();
+
// OP_SET_STORAGE_POLICY 45
filesystem.setStoragePolicy(pathFileCreate,
HdfsConstants.HOT_STORAGE_POLICY_NAME);