You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by sr...@apache.org on 2018/09/10 12:29:03 UTC

[flink] branch master updated: [FLINK-9735][tests] Potential leak in RocksDBResource

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

srichter pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 1a94c20  [FLINK-9735][tests] Potential leak in RocksDBResource
1a94c20 is described below

commit 1a94c2094b8045a717a92e232f9891b23120e0f2
Author: yanghua <ya...@gmail.com>
AuthorDate: Wed Sep 5 17:24:12 2018 +0800

    [FLINK-9735][tests] Potential leak in RocksDBResource
    
    This closes #6660.
---
 .../flink/contrib/streaming/state/RocksDBResource.java | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/flink-state-backends/flink-statebackend-rocksdb/src/test/java/org/apache/flink/contrib/streaming/state/RocksDBResource.java b/flink-state-backends/flink-statebackend-rocksdb/src/test/java/org/apache/flink/contrib/streaming/state/RocksDBResource.java
index 0407cc7..a415a83 100644
--- a/flink-state-backends/flink-statebackend-rocksdb/src/test/java/org/apache/flink/contrib/streaming/state/RocksDBResource.java
+++ b/flink-state-backends/flink-statebackend-rocksdb/src/test/java/org/apache/flink/contrib/streaming/state/RocksDBResource.java
@@ -30,6 +30,8 @@ import org.rocksdb.DBOptions;
 import org.rocksdb.ReadOptions;
 import org.rocksdb.RocksDB;
 import org.rocksdb.WriteOptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.annotation.Nonnull;
 
@@ -43,6 +45,8 @@ import java.util.List;
  */
 public class RocksDBResource extends ExternalResource {
 
+	private static final Logger LOG = LoggerFactory.getLogger(RocksDBResource.class);
+
 	/** Factory for {@link DBOptions} and {@link ColumnFamilyOptions}. */
 	private final OptionsFactory optionsFactory;
 
@@ -74,11 +78,25 @@ public class RocksDBResource extends ExternalResource {
 		this(new OptionsFactory() {
 			@Override
 			public DBOptions createDBOptions(DBOptions currentOptions) {
+				//close it before reuse the reference.
+				try {
+					currentOptions.close();
+				} catch (Exception e) {
+					LOG.error("Close previous DBOptions's instance failed.", e);
+				}
+
 				return PredefinedOptions.FLASH_SSD_OPTIMIZED.createDBOptions();
 			}
 
 			@Override
 			public ColumnFamilyOptions createColumnOptions(ColumnFamilyOptions currentOptions) {
+				//close it before reuse the reference.
+				try {
+					currentOptions.close();
+				} catch (Exception e) {
+					LOG.error("Close previous DBOptions's instance failed.", e);
+				}
+
 				return PredefinedOptions.FLASH_SSD_OPTIMIZED.createColumnOptions();
 			}
 		});