This is an automated email from the ASF dual-hosted git repository. mjsax pushed a commit to branch 2.3 in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/2.3 by this push: new 5942700 HOT FIX: close RocksDB objects in correct order (#7076) 5942700 is described below commit 5942700a45363170c914f5a450bba0d9b3ca05d8 Author: A. Sophie Blee-Goldman <sop...@confluent.io> AuthorDate: Fri Jul 12 12:43:46 2019 -0700 HOT FIX: close RocksDB objects in correct order (#7076) Reviewers: Bill Bejeck <b...@confluent.io>, Matthias J. Sax <matth...@confluent.io> --- .../RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.java | 3 ++- .../java/org/apache/kafka/streams/state/internals/RocksDBStore.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.java b/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.java index d28682a..5b892a2 100644 --- a/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.java +++ b/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.java @@ -1384,7 +1384,8 @@ class RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter extends Options @Override public void close() { - columnFamilyOptions.close(); + // ColumnFamilyOptions should be closed last dbOptions.close(); + columnFamilyOptions.close(); } } diff --git a/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBStore.java b/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBStore.java index 0643e64..bcc4372 100644 --- a/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBStore.java +++ b/streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBStore.java @@ -402,11 +402,13 @@ public class RocksDBStore implements KeyValueStore<Bytes, byte[]>, BulkLoadingSt configSetter = null; } + // Important: do not rearrange the order in which the below objects are closed! + // Order of closing must follow: ColumnFamilyHandle > RocksDB > DBOptions > ColumnFamilyOptions dbAccessor.close(); + db.close(); userSpecifiedOptions.close(); wOptions.close(); fOptions.close(); - db.close(); filter.close(); cache.close();