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 in...@apache.org on 2019/02/20 22:21:58 UTC
[hadoop] 32/41: HDFS-14224. RBF: NPE in getContentSummary() for
getEcPolicy() in case of multiple destinations. Contributed by Ayush
Saxena.
This is an automated email from the ASF dual-hosted git repository.
inigoiri pushed a commit to branch HDFS-13891
in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit 2f928256feb88488f1c1010da7a682ed71cb4253
Author: Brahma Reddy Battula <br...@apache.org>
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 09f7e5f..485c103 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
@@ -1629,6 +1629,7 @@ public class RouterClientProtocol implements ClientProtocol {
long quota = 0;
long spaceConsumed = 0;
long spaceQuota = 0;
+ String ecPolicy = "";
for (ContentSummary summary : summaries) {
length += summary.getLength();
@@ -1637,6 +1638,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()
@@ -1646,6 +1652,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: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org