This is an automated email from the ASF dual-hosted git repository.
adoroszlai 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 6df0237090 HDDS-10000. Improve LeakDetector (#5916)
6df0237090 is described below
commit 6df0237090f4719e68316b8adf0f7798825e2f9b
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Thu Jan 4 21:06:14 2024 +0100
HDDS-10000. Improve LeakDetector (#5916)
---
.../java/org/apache/hadoop/hdds/utils/LeakDetector.java | 11 +++++++----
.../java/org/apache/hadoop/hdds/utils/LeakTracker.java | 5 ++++-
.../apache/hadoop/hdds/resource/TestLeakDetector.java | 17 ++++++++++-------
.../hdds/utils/db/managed/ManagedBloomFilter.java | 4 ++--
.../utils/db/managed/ManagedColumnFamilyOptions.java | 4 ++--
.../utils/db/managed/ManagedCompactRangeOptions.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedDBOptions.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedEnvOptions.java | 4 ++--
.../hdds/utils/db/managed/ManagedFlushOptions.java | 4 ++--
.../db/managed/ManagedIngestExternalFileOptions.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedLRUCache.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedObject.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedOptions.java | 4 ++--
.../hdds/utils/db/managed/ManagedReadOptions.java | 4 ++--
.../hdds/utils/db/managed/ManagedRocksObjectUtils.java | 5 ++---
.../hadoop/hdds/utils/db/managed/ManagedSlice.java | 4 ++--
.../hdds/utils/db/managed/ManagedSstFileWriter.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedStatistics.java | 4 ++--
.../hadoop/hdds/utils/db/managed/ManagedWriteBatch.java | 4 ++--
.../hdds/utils/db/managed/ManagedWriteOptions.java | 4 ++--
20 files changed, 55 insertions(+), 47 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakDetector.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakDetector.java
index 67f5c2f2bb..477a291f92 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakDetector.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakDetector.java
@@ -18,6 +18,7 @@
*/
package org.apache.hadoop.hdds.utils;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -25,6 +26,7 @@ import java.lang.ref.ReferenceQueue;
import java.util.Collections;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
/**
* Simple general resource leak detector using {@link ReferenceQueue} and
{@link java.lang.ref.WeakReference} to
@@ -37,7 +39,7 @@ import java.util.concurrent.ConcurrentHashMap;
* class MyResource implements AutoClosable {
* static final LeakDetector LEAK_DETECTOR = new LeakDetector("MyResource");
*
- * private final LeakTracker leakTracker = LEAK_DETECTOR.track(this, () -> {
+ * private final UncheckedAutoCloseable leakTracker =
LEAK_DETECTOR.track(this, () -> {
* // report leaks, don't refer to the original object (MyResource) here.
* System.out.println("MyResource is not closed before being discarded.");
* });
@@ -53,13 +55,14 @@ import java.util.concurrent.ConcurrentHashMap;
* }</pre>
*/
public class LeakDetector {
- public static final Logger LOG = LoggerFactory.getLogger(LeakDetector.class);
+ private static final Logger LOG =
LoggerFactory.getLogger(LeakDetector.class);
+ private static final AtomicLong COUNTER = new AtomicLong();
private final ReferenceQueue<Object> queue = new ReferenceQueue<>();
private final Set<LeakTracker> allLeaks = Collections.newSetFromMap(new
ConcurrentHashMap<>());
private final String name;
public LeakDetector(String name) {
- this.name = name;
+ this.name = name + COUNTER.getAndIncrement();
start();
}
@@ -89,7 +92,7 @@ public class LeakDetector {
LOG.warn("Exiting leak detector {}.", name);
}
- public LeakTracker track(Object leakable, Runnable reportLeak) {
+ public UncheckedAutoCloseable track(Object leakable, Runnable reportLeak) {
// A rate filter can be put here to only track a subset of all objects,
e.g. 5%, 10%,
// if we have proofs that leak tracking impacts performance, or a single
LeakDetector
// thread can't keep up with the pace of object allocation.
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakTracker.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakTracker.java
index 6103d520ca..dfd07f7e58 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakTracker.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/utils/LeakTracker.java
@@ -18,6 +18,8 @@
*/
package org.apache.hadoop.hdds.utils;
+import org.apache.ratis.util.UncheckedAutoCloseable;
+
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
import java.util.Set;
@@ -27,7 +29,7 @@ import java.util.Set;
*
* @see LeakDetector
*/
-public class LeakTracker extends WeakReference<Object> {
+final class LeakTracker extends WeakReference<Object> implements
UncheckedAutoCloseable {
private final Set<LeakTracker> allLeaks;
private final Runnable leakReporter;
LeakTracker(Object referent, ReferenceQueue<Object> referenceQueue,
@@ -40,6 +42,7 @@ public class LeakTracker extends WeakReference<Object> {
/**
* Called by the tracked resource when closing.
*/
+ @Override
public void close() {
allLeaks.remove(this);
}
diff --git
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/resource/TestLeakDetector.java
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/resource/TestLeakDetector.java
index 4a60fcc8a4..fd5cf75afa 100644
---
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/resource/TestLeakDetector.java
+++
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/resource/TestLeakDetector.java
@@ -18,7 +18,7 @@
package org.apache.hadoop.hdds.resource;
import org.apache.hadoop.hdds.utils.LeakDetector;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.junit.jupiter.api.Test;
import java.util.concurrent.atomic.AtomicInteger;
@@ -28,18 +28,21 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Test LeakDetector.
*/
-public class TestLeakDetector {
+class TestLeakDetector {
private static final LeakDetector LEAK_DETECTOR = new LeakDetector("test");
- private AtomicInteger leaks = new AtomicInteger(0);
+ private final AtomicInteger leaks = new AtomicInteger(0);
@Test
- public void testLeakDetector() throws Exception {
+ void testNoLeaks() throws Exception {
// create and close resource => no leaks.
createResource(true);
System.gc();
Thread.sleep(100);
assertEquals(0, leaks.get());
+ }
+ @Test
+ void testLeaks() throws Exception {
// create and not close => leaks.
createResource(false);
System.gc();
@@ -47,7 +50,7 @@ public class TestLeakDetector {
assertEquals(1, leaks.get());
}
- private void createResource(boolean close) throws Exception {
+ private void createResource(boolean close) {
MyResource resource = new MyResource(leaks);
if (close) {
resource.close();
@@ -55,14 +58,14 @@ public class TestLeakDetector {
}
private static final class MyResource implements AutoCloseable {
- private final LeakTracker leakTracker;
+ private final UncheckedAutoCloseable leakTracker;
private MyResource(final AtomicInteger leaks) {
leakTracker = LEAK_DETECTOR.track(this, () -> leaks.incrementAndGet());
}
@Override
- public void close() throws Exception {
+ public void close() {
leakTracker.close();
}
}
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 ffee7c1f55..32d08f46f2 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.BloomFilter;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed BloomFilter.
*/
public class ManagedBloomFilter extends BloomFilter {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 7b1da6a169..dc6a840926 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.ColumnFamilyOptions;
import org.rocksdb.TableFormatConfig;
@@ -33,7 +33,7 @@ public class ManagedColumnFamilyOptions extends
ColumnFamilyOptions {
* instances.
*/
private boolean reused = false;
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
public ManagedColumnFamilyOptions() {
}
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 0e397ed0e9..44f4dba8f8 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.CompactRangeOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed CompactRangeOptions.
*/
public class ManagedCompactRangeOptions extends CompactRangeOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 fa01e2e101..dd8e20cd95 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.DBOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed DBOptions.
*/
public class ManagedDBOptions extends DBOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 baad1ad7f4..d19ffbda4f 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.EnvOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed EnvOptions.
*/
public class ManagedEnvOptions extends EnvOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 126f5336ba..7a2049efda 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.FlushOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed FlushOptions.
*/
public class ManagedFlushOptions extends FlushOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 1783a34587..36e8e36ef0 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.IngestExternalFileOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed IngestExternalFileOptions.
*/
public class ManagedIngestExternalFileOptions extends
IngestExternalFileOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 5244863a5a..db8ff7ddbd 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.LRUCache;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed LRUCache.
*/
public class ManagedLRUCache extends LRUCache {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
public ManagedLRUCache(long capacity) {
super(capacity);
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 1e4068a7a8..cae72ab730 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.RocksObject;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -29,7 +29,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
*/
class ManagedObject<T extends RocksObject> implements AutoCloseable {
private final T original;
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
ManagedObject(T original) {
this.original = 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 e438068e3a..73ee224a1a 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.Options;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed Options.
*/
public class ManagedOptions extends Options {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 48c2238ec4..af5d3879e7 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.ReadOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed {@link ReadOptions}.
*/
public class ManagedReadOptions extends ReadOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 7ae7001ccd..3d7c08275d 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
@@ -20,7 +20,7 @@ package org.apache.hadoop.hdds.utils.db.managed;
import org.apache.hadoop.hdds.HddsUtils;
import org.apache.hadoop.hdds.utils.LeakDetector;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.awaitility.Awaitility;
import org.awaitility.core.ConditionTimeoutException;
import org.rocksdb.RocksDB;
@@ -49,7 +49,7 @@ public final class ManagedRocksObjectUtils {
private static final LeakDetector LEAK_DETECTOR = new
LeakDetector("ManagedRocksObject");
- static LeakTracker track(AutoCloseable object) {
+ static UncheckedAutoCloseable track(AutoCloseable object) {
ManagedRocksObjectMetrics.INSTANCE.increaseManagedObject();
final Class<?> clazz = object.getClass();
final StackTraceElement[] stackTrace = getStackTrace();
@@ -80,7 +80,6 @@ public final class ManagedRocksObjectUtils {
* @param maxDuration poll max duration.
* @param interval poll interval.
* @param pollDelayDuration poll delay val.
- * @return true if deleted.
*/
public static void waitForFileDelete(File file, Duration maxDuration,
Duration interval,
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 8c366bdaa4..b69dc5d704 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.Slice;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed Slice.
*/
public class ManagedSlice extends Slice {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
public ManagedSlice(byte[] data) {
super(data);
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 de7e9d5266..a80b7b69a1 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.EnvOptions;
import org.rocksdb.Options;
import org.rocksdb.SstFileWriter;
@@ -29,7 +29,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed SstFileWriter.
*/
public class ManagedSstFileWriter extends SstFileWriter {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
public ManagedSstFileWriter(EnvOptions envOptions,
Options options) {
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 75af8b8813..ecd731dd6f 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.Statistics;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed Statistics.
*/
public class ManagedStatistics extends Statistics {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
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 b1411b09a4..28aadf95f3 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.WriteBatch;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed WriteBatch.
*/
public class ManagedWriteBatch extends WriteBatch {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
public ManagedWriteBatch() {
}
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 5d32a290b5..d226b3e03e 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
@@ -18,7 +18,7 @@
*/
package org.apache.hadoop.hdds.utils.db.managed;
-import org.apache.hadoop.hdds.utils.LeakTracker;
+import org.apache.ratis.util.UncheckedAutoCloseable;
import org.rocksdb.WriteOptions;
import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.track;
@@ -27,7 +27,7 @@ import static
org.apache.hadoop.hdds.utils.db.managed.ManagedRocksObjectUtils.tr
* Managed {@link WriteOptions}.
*/
public class ManagedWriteOptions extends WriteOptions {
- private final LeakTracker leakTracker = track(this);
+ private final UncheckedAutoCloseable leakTracker = track(this);
@Override
public void close() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]