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

siyao 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 72167cf86c3 HDDS-13860. RocksDatabase#open leaks column family handles 
when failing to read cfOptions from file (#9225)
72167cf86c3 is described below

commit 72167cf86c36aab5d53dcfb934ea3ce5973b764a
Author: Siyao Meng <[email protected]>
AuthorDate: Fri Oct 31 16:41:02 2025 -0700

    HDDS-13860. RocksDatabase#open leaks column family handles when failing to 
read cfOptions from file (#9225)
---
 .../main/java/org/apache/hadoop/hdds/utils/db/RocksDatabase.java   | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RocksDatabase.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RocksDatabase.java
index 9eeb69ece3d..b93626060c8 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RocksDatabase.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RocksDatabase.java
@@ -159,8 +159,9 @@ static RocksDatabase open(File dbFile, ManagedDBOptions 
dbOptions,
     List<ColumnFamilyDescriptor> descriptors = null;
     ManagedRocksDB db = null;
     final Map<String, ColumnFamily> columnFamilies = new HashMap<>();
+    List<TableConfig> extra = null;
     try {
-      final List<TableConfig> extra = getExtraColumnFamilies(dbFile, families);
+      extra = getExtraColumnFamilies(dbFile, families);
       descriptors = Stream.concat(families.stream(), extra.stream())
           .map(TableConfig::getDescriptor)
           .collect(Collectors.toList());
@@ -178,6 +179,10 @@ static RocksDatabase open(File dbFile, ManagedDBOptions 
dbOptions,
     } catch (RocksDBException e) {
       close(columnFamilies, db, descriptors, writeOptions, dbOptions);
       throw toRocksDatabaseException(RocksDatabase.class, "open " + dbFile, e);
+    } finally {
+      if (extra != null) {
+        extra.forEach(TableConfig::close);
+      }
     }
   }
 


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

Reply via email to