Repository: hadoop Updated Branches: refs/heads/branch-3.0 89105a623 -> 430cdfefc
HDFS-13253. RBF: Quota management incorrect parent-child relationship judgement. Contributed by Yiqun Lin. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/430cdfef Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/430cdfef Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/430cdfef Branch: refs/heads/branch-3.0 Commit: 430cdfefc01686fc4b88e46060da5b19dced5def Parents: 89105a6 Author: Yiqun Lin <yq...@apache.org> Authored: Tue Mar 13 10:41:44 2018 +0800 Committer: Yiqun Lin <yq...@apache.org> Committed: Tue Mar 13 10:41:44 2018 +0800 ---------------------------------------------------------------------- .../federation/resolver/MountTableResolver.java | 14 ++------------ .../federation/router/FederationUtil.java | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/430cdfef/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java index 2c7d1f8..27b43e5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs.server.federation.resolver; import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ROUTER_DEFAULT_NAMESERVICE; import static org.apache.hadoop.hdfs.DFSConfigKeys.FEDERATION_MOUNT_TABLE_MAX_CACHE_SIZE; import static org.apache.hadoop.hdfs.DFSConfigKeys.FEDERATION_MOUNT_TABLE_MAX_CACHE_SIZE_DEFAULT; +import static org.apache.hadoop.hdfs.server.federation.router.FederationUtil.isParentEntry; import java.io.IOException; import java.util.Collection; @@ -239,7 +240,7 @@ public class MountTableResolver PathLocation loc = entry.getValue(); String src = loc.getSourcePath(); if (src != null) { - if (src.startsWith(path)) { + if(isParentEntry(src, path)) { LOG.debug("Removing {}", src); it.remove(); } @@ -530,17 +531,6 @@ public class MountTableResolver return this.defaultNameService; } - private boolean isParentEntry(final String path, final String parent) { - if (!path.startsWith(parent)) { - return false; - } - if (path.equals(parent)) { - return true; - } - return path.charAt(parent.length()) == Path.SEPARATOR_CHAR - || parent.equals(Path.SEPARATOR); - } - /** * Find the deepest mount point for a path. * @param path Path to look for. http://git-wip-us.apache.org/repos/asf/hadoop/blob/430cdfef/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/router/FederationUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/router/FederationUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/router/FederationUtil.java index 8d631e9..3dfd998 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/router/FederationUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/router/FederationUtil.java @@ -26,6 +26,7 @@ import java.net.URL; import java.net.URLConnection; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DFSConfigKeys; import org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver; import org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver; @@ -186,4 +187,23 @@ public final class FederationUtil { ActiveNamenodeResolver.class); return newInstance(conf, stateStore, StateStoreService.class, clazz); } + + /** + * Check if the given path is the child of parent path. + * @param path Path to be check. + * @param parent Parent path. + * @return True if parent path is parent entry for given path. + */ + public static boolean isParentEntry(final String path, final String parent) { + if (!path.startsWith(parent)) { + return false; + } + + if (path.equals(parent)) { + return true; + } + + return path.charAt(parent.length()) == Path.SEPARATOR_CHAR + || parent.equals(Path.SEPARATOR); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org