This is an automated email from the ASF dual-hosted git repository.

adoroszlai 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 6d41b8709b HDDS-10001. Options not closed properly in 
rocksdb-checkpoint-differ (#5890)
6d41b8709b is described below

commit 6d41b8709b8fd81405cc06b3847c8989c60a80ab
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Jan 2 22:24:33 2024 +0100

    HDDS-10001. Options not closed properly in rocksdb-checkpoint-differ (#5890)
---
 .../apache/ozone/rocksdb/util/SstFileSetReader.java    |  7 ++++---
 .../ozone/rocksdiff/RocksDBCheckpointDiffer.java       | 16 +++++++++-------
 .../org/apache/ozone/rocksdiff/RocksDiffUtils.java     | 18 +++++++++++-------
 3 files changed, 24 insertions(+), 17 deletions(-)

diff --git 
a/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdb/util/SstFileSetReader.java
 
b/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdb/util/SstFileSetReader.java
index 3b30ca5a14..be949cd4fb 100644
--- 
a/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdb/util/SstFileSetReader.java
+++ 
b/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdb/util/SstFileSetReader.java
@@ -78,9 +78,10 @@ public class SstFileSetReader {
 
       try (ManagedOptions options = new ManagedOptions()) {
         for (String sstFile : sstFiles) {
-          SstFileReader fileReader = new SstFileReader(options);
-          fileReader.open(sstFile);
-          estimatedSize += fileReader.getTableProperties().getNumEntries();
+          try (SstFileReader fileReader = new SstFileReader(options)) {
+            fileReader.open(sstFile);
+            estimatedSize += fileReader.getTableProperties().getNumEntries();
+          }
         }
       }
       estimatedTotalKeys = estimatedSize;
diff --git 
a/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java
 
b/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java
index b6d6e773df..e830106e57 100644
--- 
a/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java
+++ 
b/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java
@@ -629,16 +629,18 @@ public class RocksDBCheckpointDiffer implements 
AutoCloseable,
       filename += SST_FILE_EXTENSION;
     }
 
-    Options option = new Options();
-    SstFileReader reader = new SstFileReader(option);
+    try (
+        ManagedOptions option = new ManagedOptions();
+        SstFileReader reader = new SstFileReader(option)) {
 
-    reader.open(getAbsoluteSstFilePath(filename));
+      reader.open(getAbsoluteSstFilePath(filename));
 
-    TableProperties properties = reader.getTableProperties();
-    if (LOG.isDebugEnabled()) {
-      LOG.debug("{} has {} keys", filename, properties.getNumEntries());
+      TableProperties properties = reader.getTableProperties();
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("{} has {} keys", filename, properties.getNumEntries());
+      }
+      return properties.getNumEntries();
     }
-    return properties.getNumEntries();
   }
 
   private String getAbsoluteSstFilePath(String filename)
diff --git 
a/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDiffUtils.java
 
b/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDiffUtils.java
index 4b7da351f1..5ddcf8b7e6 100644
--- 
a/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDiffUtils.java
+++ 
b/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDiffUtils.java
@@ -18,12 +18,12 @@
 package org.apache.ozone.rocksdiff;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hdds.utils.db.managed.ManagedOptions;
+import org.apache.hadoop.hdds.utils.db.managed.ManagedReadOptions;
 import org.apache.hadoop.hdds.utils.db.managed.ManagedSstFileReader;
 import org.apache.hadoop.hdds.utils.db.managed.ManagedSstFileReaderIterator;
 import org.rocksdb.SstFileReader;
 import org.rocksdb.TableProperties;
-import org.rocksdb.Options;
-import org.rocksdb.ReadOptions;
 import org.rocksdb.RocksDBException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -87,16 +87,20 @@ public final class RocksDiffUtils {
 
   public static boolean doesSstFileContainKeyRange(String filepath,
       Map<String, String> tableToPrefixMap) throws IOException {
-    try (ManagedSstFileReader sstFileReader = ManagedSstFileReader.managed(
-        new SstFileReader(new Options()))) {
+
+    try (
+        ManagedOptions options = new ManagedOptions();
+        ManagedSstFileReader sstFileReader = ManagedSstFileReader.managed(new 
SstFileReader(options))) {
       sstFileReader.get().open(filepath);
       TableProperties properties = sstFileReader.get().getTableProperties();
       String tableName = new String(properties.getColumnFamilyName(), UTF_8);
       if (tableToPrefixMap.containsKey(tableName)) {
         String prefix = tableToPrefixMap.get(tableName);
-        try (ManagedSstFileReaderIterator iterator =
-            ManagedSstFileReaderIterator.managed(sstFileReader.get()
-                .newIterator(new ReadOptions()))) {
+
+        try (
+            ManagedReadOptions readOptions = new ManagedReadOptions();
+            ManagedSstFileReaderIterator iterator = 
ManagedSstFileReaderIterator.managed(
+                sstFileReader.get().newIterator(readOptions))) {
           iterator.get().seek(prefix.getBytes(UTF_8));
           String seekResultKey = new String(iterator.get().key(), UTF_8);
           return seekResultKey.startsWith(prefix);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to