You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by bh...@apache.org on 2020/12/04 05:11:02 UTC
[ozone] branch master updated: HDDS-4543. Failed to list keys when
there are two bucket names with same prefix. (#1653)
This is an automated email from the ASF dual-hosted git repository.
bharat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new e6007b1 HDDS-4543. Failed to list keys when there are two bucket names with same prefix. (#1653)
e6007b1 is described below
commit e6007b11d19801ef53099643237780ff2661f10d
Author: Sammi Chen <sa...@apache.org>
AuthorDate: Fri Dec 4 13:10:48 2020 +0800
HDDS-4543. Failed to list keys when there are two bucket names with same prefix. (#1653)
---
.../apache/hadoop/ozone/om/OmMetadataManagerImpl.java | 3 ++-
.../apache/hadoop/ozone/om/TestOmMetadataManager.java | 17 ++++++++++++++---
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java
index 27a3662..15b193d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java
@@ -765,7 +765,8 @@ public class OmMetadataManagerImpl implements OMMetadataManager {
skipStartKey = true;
} else {
// This allows us to seek directly to the first key with the right prefix.
- seekKey = getOzoneKey(volumeName, bucketName, keyPrefix);
+ seekKey = getOzoneKey(volumeName, bucketName,
+ StringUtil.isNotBlank(keyPrefix) ? keyPrefix : OM_KEY_PREFIX);
}
String seekPrefix;
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOmMetadataManager.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOmMetadataManager.java
index 7c2d258..5cc048b 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOmMetadataManager.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOmMetadataManager.java
@@ -324,19 +324,21 @@ public class TestOmMetadataManager {
String volumeNameB = "volumeB";
String ozoneBucket = "ozoneBucket";
String hadoopBucket = "hadoopBucket";
-
+ String ozoneTestBucket = "ozoneBucket-Test";
// Create volumes and buckets.
TestOMRequestUtils.addVolumeToDB(volumeNameA, omMetadataManager);
TestOMRequestUtils.addVolumeToDB(volumeNameB, omMetadataManager);
addBucketsToCache(volumeNameA, ozoneBucket);
addBucketsToCache(volumeNameB, hadoopBucket);
-
+ addBucketsToCache(volumeNameA, ozoneTestBucket);
String prefixKeyA = "key-a";
String prefixKeyB = "key-b";
+ String prefixKeyC = "key-c";
TreeSet<String> keysASet = new TreeSet<>();
TreeSet<String> keysBSet = new TreeSet<>();
+ TreeSet<String> keysCSet = new TreeSet<>();
for (int i=1; i<= 100; i++) {
if (i % 2 == 0) {
keysASet.add(
@@ -348,7 +350,8 @@ public class TestOmMetadataManager {
addKeysToOM(volumeNameA, hadoopBucket, prefixKeyB + i, i);
}
}
-
+ keysCSet.add(prefixKeyC + 1);
+ addKeysToOM(volumeNameA, ozoneTestBucket, prefixKeyC + 0, 0);
TreeSet<String> keysAVolumeBSet = new TreeSet<>();
TreeSet<String> keysBVolumeBSet = new TreeSet<>();
@@ -442,6 +445,14 @@ public class TestOmMetadataManager {
Assert.assertEquals(omKeyInfoList.size(), 0);
+ // List all keys with empty prefix
+ omKeyInfoList = omMetadataManager.listKeys(volumeNameA, ozoneBucket,
+ null, null, 100);
+ Assert.assertEquals(50, omKeyInfoList.size());
+ for (OmKeyInfo omKeyInfo : omKeyInfoList) {
+ Assert.assertTrue(omKeyInfo.getKeyName().startsWith(
+ prefixKeyA));
+ }
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org