You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by bb...@apache.org on 2026/06/15 13:54:13 UTC
(kafka) branch trunk updated: KAFKA-20688: Fix RocksDB memory leak (#22557)
This is an automated email from the ASF dual-hosted git repository.
bbejeck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new a31d93c4c2d KAFKA-20688: Fix RocksDB memory leak (#22557)
a31d93c4c2d is described below
commit a31d93c4c2dc322272181c383d3cb76fc973625c
Author: Matthias J. Sax <ma...@confluent.io>
AuthorDate: Mon Jun 15 06:53:59 2026 -0700
KAFKA-20688: Fix RocksDB memory leak (#22557)
openRocksDB() passed a `new ColumnFamilyOptions()` into a throwaway Options
used only for listColumnFamilies; the try-with-resources closes the Options
wrapper but not that ColumnFamilyOptions, leaking a native handle on every
store open. Reuse the existing columnFamilyOptions parameter (already closed via RocksDBStore)
Reviewers: Nilesh Kumar, Uladzislau Blok <bl...@gmail.com>, Bill
Bejeck <bb...@apache.org>
---
.../streams/state/internals/RocksDBTimestampedStoreWithHeaders.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBTimestampedStoreWithHeaders.java b/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBTimestampedStoreWithHeaders.java
index 9a53c35290a..8f96b182916 100644
--- a/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBTimestampedStoreWithHeaders.java
+++ b/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBTimestampedStoreWithHeaders.java
@@ -73,7 +73,7 @@ public class RocksDBTimestampedStoreWithHeaders extends RocksDBStore implements
final ColumnFamilyOptions columnFamilyOptions) {
// Check if we're upgrading from RocksDBTimestampedStore or from plain RocksDBStore
final List<byte[]> existingCFs;
- try (final Options options = new Options(dbOptions, new ColumnFamilyOptions())) {
+ try (final Options options = new Options(dbOptions, columnFamilyOptions)) {
existingCFs = RocksDB.listColumnFamilies(options, dbDir.getAbsolutePath());
} catch (final RocksDBException e) {
throw new ProcessorStateException("Error listing column families for store " + name, e);