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 li...@apache.org on 2020/04/22 21:14:05 UTC
[hadoop] branch branch-3.2 updated: HDFS-15276. Concat on
INodeRefernce fails with illegal state exception. Contributed by
hemanthboyina
This is an automated email from the ASF dual-hosted git repository.
liuml07 pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.2 by this push:
new e154d9d HDFS-15276. Concat on INodeRefernce fails with illegal state exception. Contributed by hemanthboyina
e154d9d is described below
commit e154d9d9f7e401c3edda35c213562f4484208fe9
Author: Mingliang Liu <li...@apache.org>
AuthorDate: Wed Apr 22 13:31:02 2020 -0700
HDFS-15276. Concat on INodeRefernce fails with illegal state exception. Contributed by hemanthboyina
---
.../hdfs/server/namenode/INodeDirectory.java | 2 +-
.../hdfs/server/namenode/TestFileTruncate.java | 34 ++++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java
index 85d5a45..b5b6241 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java
@@ -526,7 +526,7 @@ public class INodeDirectory extends INodeWithAdditionalFields
}
final INode removed = children.remove(i);
- Preconditions.checkState(removed == child);
+ Preconditions.checkState(removed.equals(child));
return true;
}
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileTruncate.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileTruncate.java
index a1197fb9..4a732bb 100755
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileTruncate.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileTruncate.java
@@ -1283,4 +1283,38 @@ public class TestFileTruncate {
cluster.waitActive();
}
}
+
+ /**
+ * Test concat on file which is a reference.
+ */
+ @Test
+ public void testConcatOnInodeRefernce() throws IOException {
+ String dir = "/testConcat";
+ Path trgDir = new Path(dir);
+ fs.mkdirs(new Path(dir), FsPermission.getDirDefault());
+
+ // Create a target file
+ Path trg = new Path(dir, "file");
+ DFSTestUtil.createFile(fs, trg, 512, (short) 2, 0);
+
+ String dir2 = "/dir2";
+ Path srcDir = new Path(dir2);
+ // create a source file
+ fs.mkdirs(srcDir);
+ fs.allowSnapshot(srcDir);
+ Path src = new Path(srcDir, "file1");
+ DFSTestUtil.createFile(fs, src, 512, (short) 2, 0);
+
+ // make the file as an Inode reference and delete the reference
+ fs.createSnapshot(srcDir, "s1");
+ fs.rename(src, trgDir);
+ fs.deleteSnapshot(srcDir, "s1");
+ Path[] srcs = new Path[1];
+ srcs[0] = new Path(dir, "file1");
+ assertEquals(2, fs.getContentSummary(new Path(dir)).getFileCount());
+
+ // perform concat
+ fs.concat(trg, srcs);
+ assertEquals(1, fs.getContentSummary(new Path(dir)).getFileCount());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org