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]

Reply via email to