This is an automated email from the ASF dual-hosted git repository. simbadzina 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 0cfffb30121 HDFS-17214. RBF: The Quota class' andByStorageType method res has an incorrect initial value. (#6135) 0cfffb30121 is described below commit 0cfffb30121f4fb5f396d6bf4547f60eb75daa3b Author: xiaojunxiang <65019264+xiaojunxiang2...@users.noreply.github.com> AuthorDate: Tue Oct 3 23:26:03 2023 +0800 HDFS-17214. RBF: The Quota class' andByStorageType method res has an incorrect initial value. (#6135) Co-authored-by: xiaojunxiang <xiaojunxi...@kingsoft.com> --- .../hdfs/server/federation/router/Quota.java | 2 +- .../server/federation/router/TestRouterQuota.java | 30 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/Quota.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/Quota.java index 825118fed3c..8e984d65c33 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/Quota.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/Quota.java @@ -347,7 +347,7 @@ public class Quota { * @return true if bitwise AND by all storage type returns true, false otherwise. */ public static boolean andByStorageType(Predicate<StorageType> predicate) { - boolean res = false; + boolean res = true; for (StorageType type : StorageType.values()) { res &= predicate.test(type); } diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterQuota.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterQuota.java index aa3d5470561..3c5be3cf98d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterQuota.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterQuota.java @@ -31,6 +31,8 @@ import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.UUID; +import java.util.Arrays; +import java.util.function.Predicate; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CreateFlag; @@ -1168,6 +1170,34 @@ public class TestRouterQuota { assertEquals(0, quotaUsage.getSpaceConsumed()); } + @Test + public void testAndByStorageType() { + long[] typeQuota = new long[StorageType.values().length]; + Arrays.fill(typeQuota, HdfsConstants.QUOTA_DONT_SET); + + Predicate<StorageType> predicate = new Predicate<StorageType>() { + @Override + public boolean test(StorageType storageType) { + return typeQuota[storageType.ordinal()] == HdfsConstants.QUOTA_DONT_SET; + } + }; + + assertTrue(Quota.andByStorageType(predicate)); + + // This is a value to test for, + // as long as it is not equal to HdfsConstants.QUOTA_DONT_SET + typeQuota[0] = HdfsConstants.QUOTA_RESET; + assertFalse(Quota.andByStorageType(predicate)); + + Arrays.fill(typeQuota, HdfsConstants.QUOTA_DONT_SET); + typeQuota[1] = HdfsConstants.QUOTA_RESET; + assertFalse(Quota.andByStorageType(predicate)); + + Arrays.fill(typeQuota, HdfsConstants.QUOTA_DONT_SET); + typeQuota[typeQuota.length-1] = HdfsConstants.QUOTA_RESET; + assertFalse(Quota.andByStorageType(predicate)); + } + /** * Add three mount tables. * /dir-1 --> ns0---/dir-1 [nsQuota, ssQuota] --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org