This is an automated email from the ASF dual-hosted git repository.
brahma pushed a commit to branch HDFS-13891
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/HDFS-13891 by this push:
new caceff1 HDFS-14224. RBF: NPE in getContentSummary() for getEcPolicy()
in case of multiple destinations. Contributed by Ayush Saxena.
caceff1 is described below
commit caceff1d6033a10b8de55e304bf8b8334d69d120
Author: Brahma Reddy Battula <[email protected]>
AuthorDate: Mon Jan 28 09:03:32 2019 +0530
HDFS-14224. RBF: NPE in getContentSummary() for getEcPolicy() in case of
multiple destinations. Contributed by Ayush Saxena.
---
.../server/federation/router/RouterClientProtocol.java | 7 +++++++
.../federation/router/TestRouterRpcMultiDestination.java | 16 ++++++++++++++++
2 files changed, 23 insertions(+)
diff --git
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
index c724b17..2d52ecb 100644
---
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
+++
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
@@ -1628,6 +1628,7 @@ public class RouterClientProtocol implements
ClientProtocol {
long quota = 0;
long spaceConsumed = 0;
long spaceQuota = 0;
+ String ecPolicy = "";
for (ContentSummary summary : summaries) {
length += summary.getLength();
@@ -1636,6 +1637,11 @@ public class RouterClientProtocol implements
ClientProtocol {
quota += summary.getQuota();
spaceConsumed += summary.getSpaceConsumed();
spaceQuota += summary.getSpaceQuota();
+ // We return from the first response as we assume that the EC policy
+ // of each sub-cluster is same.
+ if (ecPolicy.isEmpty()) {
+ ecPolicy = summary.getErasureCodingPolicy();
+ }
}
ContentSummary ret = new ContentSummary.Builder()
@@ -1645,6 +1651,7 @@ public class RouterClientProtocol implements
ClientProtocol {
.quota(quota)
.spaceConsumed(spaceConsumed)
.spaceQuota(spaceQuota)
+ .erasureCodingPolicy(ecPolicy)
.build();
return ret;
}
diff --git
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpcMultiDestination.java
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpcMultiDestination.java
index 3101748..3d941bb 100644
---
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpcMultiDestination.java
+++
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpcMultiDestination.java
@@ -41,6 +41,7 @@ import java.util.TreeSet;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.protocol.ClientProtocol;
import org.apache.hadoop.hdfs.protocol.DirectoryListing;
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
@@ -230,6 +231,21 @@ public class TestRouterRpcMultiDestination extends
TestRouterRpc {
}
@Test
+ public void testGetContentSummaryEc() throws Exception {
+ DistributedFileSystem routerDFS =
+ (DistributedFileSystem) getRouterFileSystem();
+ Path dir = new Path("/");
+ String expectedECPolicy = "RS-6-3-1024k";
+ try {
+ routerDFS.setErasureCodingPolicy(dir, expectedECPolicy);
+ assertEquals(expectedECPolicy,
+ routerDFS.getContentSummary(dir).getErasureCodingPolicy());
+ } finally {
+ routerDFS.unsetErasureCodingPolicy(dir);
+ }
+ }
+
+ @Test
public void testSubclusterDown() throws Exception {
final int totalFiles = 6;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]