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 um...@apache.org on 2020/09/07 18:36:32 UTC
[hadoop] branch trunk updated: HDFS-15558:
ViewDistributedFileSystem#recoverLease should call super.recoverLease when
there are no mounts configured (#2275) Contributed by Uma Maheswara Rao G.
This is an automated email from the ASF dual-hosted git repository.
umamahesh pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new ac7d462 HDFS-15558: ViewDistributedFileSystem#recoverLease should call super.recoverLease when there are no mounts configured (#2275) Contributed by Uma Maheswara Rao G.
ac7d462 is described below
commit ac7d4623aefe9d9bd819ff6fbffae15ad983c5f3
Author: Uma Maheswara Rao G <um...@apache.org>
AuthorDate: Mon Sep 7 11:36:13 2020 -0700
HDFS-15558: ViewDistributedFileSystem#recoverLease should call super.recoverLease when there are no mounts configured (#2275) Contributed by Uma Maheswara Rao G.
---
.../hadoop/hdfs/ViewDistributedFileSystem.java | 7 +++++++
.../org/apache/hadoop/hdfs/TestLeaseRecovery.java | 16 ++++++++++++++-
.../hadoop/hdfs/TestViewDistributedFileSystem.java | 23 ++++++++++++++++++++++
3 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java
index 0a68169..1afb5d9 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java
@@ -266,6 +266,10 @@ public class ViewDistributedFileSystem extends DistributedFileSystem {
@Override
public boolean recoverLease(final Path f) throws IOException {
+ if (this.vfs == null) {
+ return super.recoverLease(f);
+ }
+
ViewFileSystemOverloadScheme.MountPathInfo<FileSystem> mountPathInfo =
this.vfs.getMountPathInfo(f, getConf());
checkDFS(mountPathInfo.getTargetFs(), "recoverLease");
@@ -286,6 +290,9 @@ public class ViewDistributedFileSystem extends DistributedFileSystem {
@Override
public FSDataInputStream open(PathHandle fd, int bufferSize)
throws IOException {
+ if (this.vfs == null) {
+ return super.open(fd, bufferSize);
+ }
return this.vfs.open(fd, bufferSize);
}
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery.java
index a1cce3e..399aa1e 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery.java
@@ -280,8 +280,22 @@ public class TestLeaseRecovery {
*/
@Test
public void testLeaseRecoveryAndAppend() throws Exception {
+ testLeaseRecoveryAndAppend(new Configuration());
+ }
+
+ /**
+ * Recover the lease on a file and append file from another client with
+ * ViewDFS enabled.
+ */
+ @Test
+ public void testLeaseRecoveryAndAppendWithViewDFS() throws Exception {
Configuration conf = new Configuration();
- try{
+ conf.set("fs.hdfs.impl", ViewDistributedFileSystem.class.getName());
+ testLeaseRecoveryAndAppend(conf);
+ }
+
+ private void testLeaseRecoveryAndAppend(Configuration conf) throws Exception {
+ try {
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
Path file = new Path("/testLeaseRecovery");
DistributedFileSystem dfs = cluster.getFileSystem();
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
index 3c5a0be..0ba0841 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
@@ -17,9 +17,13 @@
*/
package org.apache.hadoop.hdfs;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.PathHandle;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
import org.apache.hadoop.test.Whitebox;
+import org.junit.Test;
import java.io.IOException;
@@ -44,4 +48,23 @@ public class TestViewDistributedFileSystem extends TestDistributedFileSystem{
data.set(null);
super.testStatistics();
}
+
+ @Test
+ public void testOpenWithPathHandle() throws Exception {
+ Configuration conf = getTestConfiguration();
+ MiniDFSCluster cluster = null;
+ try {
+ cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
+ FileSystem fileSys = cluster.getFileSystem();
+ Path openTestPath = new Path("/testOpen");
+ fileSys.create(openTestPath).close();
+ PathHandle pathHandle =
+ fileSys.getPathHandle(fileSys.getFileStatus(openTestPath));
+ fileSys.open(pathHandle, 1024).close();
+ } finally {
+ if (cluster != null) {
+ cluster.shutdown();
+ }
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org