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 9eeb69ece3d8..b93626060c80 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 descriptors = null; ManagedRocksDB db = null; final Map columnFamilies = new HashMap<>(); + List extra = null; try { - final List 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); + } } }