This is an automated email from the ASF dual-hosted git repository.
duong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 945e8bfdcf HDDS-9724. Provide stack trace for RocksObject allocation
(#5631)
945e8bfdcf is described below
commit 945e8bfdcfe0be1fecbca3716d41305c4ae23d00
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Nov 21 02:11:19 2023 +0100
HDDS-9724. Provide stack trace for RocksObject allocation (#5631)
---
.../hdds/utils/db/managed/ManagedBloomFilter.java | 11 ++++++++++-
.../hdds/utils/db/managed/ManagedCheckpoint.java | 2 +-
.../utils/db/managed/ManagedColumnFamilyOptions.java | 18 ++++++++++++++----
.../utils/db/managed/ManagedCompactRangeOptions.java | 11 ++++++++++-
.../hadoop/hdds/utils/db/managed/ManagedDBOptions.java | 11 ++++++++++-
.../hdds/utils/db/managed/ManagedEnvOptions.java | 12 +++++++++++-
.../hdds/utils/db/managed/ManagedFlushOptions.java | 11 ++++++++++-
.../db/managed/ManagedIngestExternalFileOptions.java | 11 ++++++++++-
.../hadoop/hdds/utils/db/managed/ManagedLRUCache.java | 12 +++++++++++-
.../hadoop/hdds/utils/db/managed/ManagedObject.java | 3 +++
.../hadoop/hdds/utils/db/managed/ManagedOptions.java | 11 ++++++++++-
.../hdds/utils/db/managed/ManagedReadOptions.java | 18 ++++++++----------
.../hadoop/hdds/utils/db/managed/ManagedRocksDB.java | 2 +-
.../hdds/utils/db/managed/ManagedRocksObjectUtils.java | 6 +-----
.../hadoop/hdds/utils/db/managed/ManagedSlice.java | 8 ++++----
.../hdds/utils/db/managed/ManagedSstFileWriter.java | 12 +++++++++++-
.../hdds/utils/db/managed/ManagedStatistics.java | 12 +++++++++++-
.../hdds/utils/db/managed/ManagedWriteBatch.java | 11 ++++++++++-
.../hdds/utils/db/managed/ManagedWriteOptions.java | 16 +++++++++++-----
19 files changed, 157 insertions(+), 41 deletions(-)
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedBloomFilter.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedBloomFilter.java
index bf153cf823..9e7bad651f 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedBloomFilter.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedBloomFilter.java
@@ -20,14 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.BloomFilter;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed BloomFilter.
*/
public class ManagedBloomFilter extends BloomFilter {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCheckpoint.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCheckpoint.java
index e2f0179588..884a0d9387 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCheckpoint.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCheckpoint.java
@@ -20,7 +20,7 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.Checkpoint;
/**
- * Managed RocksIterator.
+ * Managed {@link Checkpoint}.
*/
public class ManagedCheckpoint extends ManagedObject<Checkpoint> {
public ManagedCheckpoint(Checkpoint original) {
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedColumnFamilyOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedColumnFamilyOptions.java
index 577e0364d5..39ee7b0ce7 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedColumnFamilyOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedColumnFamilyOptions.java
@@ -21,13 +21,19 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.ColumnFamilyOptions;
import org.rocksdb.TableFormatConfig;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed ColumnFamilyOptions.
*/
public class ManagedColumnFamilyOptions extends ColumnFamilyOptions {
- public ManagedColumnFamilyOptions() {
- super();
- }
+
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
/**
* Indicate if this ColumnFamilyOptions is intentionally used across RockDB
@@ -35,6 +41,10 @@ public class ManagedColumnFamilyOptions extends
ColumnFamilyOptions {
*/
private boolean reused = false;
+ public ManagedColumnFamilyOptions() {
+ super();
+ }
+
public ManagedColumnFamilyOptions(ColumnFamilyOptions columnFamilyOptions) {
super(columnFamilyOptions);
}
@@ -76,7 +86,7 @@ public class ManagedColumnFamilyOptions extends
ColumnFamilyOptions {
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCompactRangeOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCompactRangeOptions.java
index 69379e00fa..6f7da30cdb 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCompactRangeOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedCompactRangeOptions.java
@@ -20,14 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.CompactRangeOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed CompactRangeOptions.
*/
public class ManagedCompactRangeOptions extends CompactRangeOptions {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedDBOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedDBOptions.java
index 7c412b7459..a66a04eae9 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedDBOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedDBOptions.java
@@ -20,14 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.DBOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed DBOptions.
*/
public class ManagedDBOptions extends DBOptions {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedEnvOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedEnvOptions.java
index 9103e4cfb5..38d6f95ce7 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedEnvOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedEnvOptions.java
@@ -20,13 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.EnvOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed EnvOptions.
*/
public class ManagedEnvOptions extends EnvOptions {
+
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedFlushOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedFlushOptions.java
index 44fae0bf8b..8801f7d241 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedFlushOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedFlushOptions.java
@@ -20,14 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.FlushOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed FlushOptions.
*/
public class ManagedFlushOptions extends FlushOptions {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedIngestExternalFileOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedIngestExternalFileOptions.java
index 2e9ec1dec6..94b34e20d2 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedIngestExternalFileOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedIngestExternalFileOptions.java
@@ -20,15 +20,24 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.IngestExternalFileOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed IngestExternalFileOptions.
*/
public class ManagedIngestExternalFileOptions extends
IngestExternalFileOptions {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedLRUCache.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedLRUCache.java
index 28fe6e95a4..8bf9147c15 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedLRUCache.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedLRUCache.java
@@ -20,17 +20,27 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.LRUCache;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed LRUCache.
*/
public class ManagedLRUCache extends LRUCache {
+
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
public ManagedLRUCache(long capacity) {
super(capacity);
}
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedObject.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedObject.java
index 8093882a1d..0ab87f156e 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedObject.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedObject.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.RocksObject;
+import javax.annotation.Nullable;
+
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
/**
@@ -29,6 +31,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.fo
class ManagedObject<T extends RocksObject> implements AutoCloseable {
private final T original;
+ @Nullable
private final StackTraceElement[] elements;
ManagedObject(T original) {
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedOptions.java
index 6afbc78675..4ae96e1b76 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedOptions.java
@@ -20,14 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.Options;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed Options.
*/
public class ManagedOptions extends Options {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedReadOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedReadOptions.java
index 4b445fa36f..a281722d24 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedReadOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedReadOptions.java
@@ -20,26 +20,24 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.ReadOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
/**
- * Managed WriteBatch.
+ * Managed {@link ReadOptions}.
*/
public class ManagedReadOptions extends ReadOptions {
- private final StackTraceElement[] elements;
-
- public ManagedReadOptions() {
- this.elements = ManagedRocksObjectUtils.getStackTrace();
- }
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this, getStackTrace());
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
- private String getStackTrace() {
- return formatStackTrace(elements);
- }
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksDB.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksDB.java
index a2bb1d0f07..5a5a577351 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksDB.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksDB.java
@@ -33,7 +33,7 @@ import java.time.Duration;
import java.util.List;
/**
- * Managed BloomFilter.
+ * Managed {@link RocksDB}.
*/
public class ManagedRocksDB extends ManagedObject<RocksDB> {
public static final Class<RocksDB> ORIGINAL_CLASS = RocksDB.class;
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksObjectUtils.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksObjectUtils.java
index 6adf147292..b32f1111cb 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksObjectUtils.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedRocksObjectUtils.java
@@ -44,10 +44,6 @@ public final class ManagedRocksObjectUtils {
private static final Duration POLL_DELAY_DURATION = Duration.ZERO;
private static final Duration POLL_INTERVAL_DURATION =
Duration.ofMillis(100);
- static void assertClosed(RocksObject rocksObject) {
- assertClosed(rocksObject, null);
- }
-
public static void assertClosed(ManagedObject<?> object) {
assertClosed(object.get(), object.getStackTrace());
}
@@ -75,7 +71,7 @@ public final class ManagedRocksObjectUtils {
return HddsUtils.getStackTrace(LOG);
}
- static String formatStackTrace(StackTraceElement[] elements) {
+ static String formatStackTrace(@Nullable StackTraceElement[] elements) {
return HddsUtils.formatStackTrace(elements, 3);
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSlice.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSlice.java
index 19d702253e..2de2031fb9 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSlice.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSlice.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.Slice;
+import javax.annotation.Nullable;
+
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
/**
@@ -27,6 +29,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.fo
*/
public class ManagedSlice extends Slice {
+ @Nullable
private final StackTraceElement[] elements;
public ManagedSlice(byte[] var1) {
@@ -43,12 +46,9 @@ public class ManagedSlice extends Slice {
protected void finalize() throws Throwable {
ManagedRocksObjectMetrics.INSTANCE.increaseManagedObject();
if (isOwningHandle()) {
- ManagedRocksObjectUtils.reportLeak(this, getStackTrace());
+ ManagedRocksObjectUtils.reportLeak(this, formatStackTrace(elements));
}
super.finalize();
}
- private String getStackTrace() {
- return formatStackTrace(elements);
- }
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSstFileWriter.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSstFileWriter.java
index f2cf267fa7..e6fdcbc2ed 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSstFileWriter.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedSstFileWriter.java
@@ -22,10 +22,20 @@ import org.rocksdb.EnvOptions;
import org.rocksdb.Options;
import org.rocksdb.SstFileWriter;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed SstFileWriter.
*/
public class ManagedSstFileWriter extends SstFileWriter {
+
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
public ManagedSstFileWriter(EnvOptions envOptions,
Options options) {
super(envOptions, options);
@@ -33,7 +43,7 @@ public class ManagedSstFileWriter extends SstFileWriter {
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedStatistics.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedStatistics.java
index f7b6ae0b0c..4cbd6f9828 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedStatistics.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedStatistics.java
@@ -20,13 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.Statistics;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed Statistics.
*/
public class ManagedStatistics extends Statistics {
+
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteBatch.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteBatch.java
index 44a50dd42d..51c9bcc0df 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteBatch.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteBatch.java
@@ -20,11 +20,20 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.WriteBatch;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
* Managed WriteBatch.
*/
public class ManagedWriteBatch extends WriteBatch {
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
+
public ManagedWriteBatch() {
super();
}
@@ -35,7 +44,7 @@ public class ManagedWriteBatch extends WriteBatch {
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
diff --git
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteOptions.java
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteOptions.java
index 88bd6d2bd2..7ba05a0ee6 100644
---
a/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteOptions.java
+++
b/hadoop-hdds/managed-rocksdb/src/main/java/org/apache/hadoop/hdds/utils/db/managed/ManagedWriteOptions.java
@@ -20,17 +20,23 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.rocksdb.WriteOptions;
+import javax.annotation.Nullable;
+
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.assertClosed;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.formatStackTrace;
+import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.getStackTrace;
+
/**
- * Managed WriteBatch.
+ * Managed {@link WriteOptions}.
*/
public class ManagedWriteOptions extends WriteOptions {
- public ManagedWriteOptions() {
- super();
- }
+
+ @Nullable
+ private final StackTraceElement[] elements = getStackTrace();
@Override
protected void finalize() throws Throwable {
- ManagedRocksObjectUtils.assertClosed(this);
+ assertClosed(this, formatStackTrace(elements));
super.finalize();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]