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

mjsax pushed a commit to branch 2.2
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/2.2 by this push:
     new 74b672b  HOT FIX: close RocksDB objects in correct order (#7076)
74b672b is described below

commit 74b672b0fa11bd5989f1e1f2559686ed433999ed
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  | 5 ++++-
 2 files changed, 6 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 c07e43b..ba83c02 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
@@ -1356,7 +1356,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 109b8c3..ee62ec7 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
@@ -374,11 +374,14 @@ public class RocksDBStore implements KeyValueStore<Bytes, 
byte[]> {
 
         open = false;
         closeOpenIterators();
+
+        // 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();
 
         dbAccessor = null;

Reply via email to