[ 
https://issues.apache.org/jira/browse/HBASE-27941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17819867#comment-17819867
 ] 

Duo Zhang commented on HBASE-27941:
-----------------------------------

Ah, there could be other problem. I added a close method for memstore, but 
there are still leaks when running TestHRegion, and it seems that we inc the 
ref count twice but only dec it once.

Let me dig more.

{noformat}
2024-02-22T23:20:43,816 ERROR [Time-limited test {}] 
util.ResourceLeakDetector(337): LEAK: RefCnt.release() was not called before 
it's garbage-collected. See 
https://netty.io/wiki/reference-counted-objects.html for more information.
Recent access records: 
#1:
        org.apache.hadoop.hbase.nio.RefCnt.maybeRecord(RefCnt.java:120)
        org.apache.hadoop.hbase.nio.RefCnt.release(RefCnt.java:83)
        
org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.close(MemStoreLABImpl.java:269)
        org.apache.hadoop.hbase.regionserver.Segment.close(Segment.java:143)
        
org.apache.hadoop.hbase.regionserver.AbstractMemStore.doClearSnapShot(AbstractMemStore.java:252)
        
org.apache.hadoop.hbase.regionserver.AbstractMemStore.clearSnapshot(AbstractMemStore.java:243)
        
org.apache.hadoop.hbase.regionserver.HStore.lambda$completeFlush$5(HStore.java:910)
        
org.apache.hadoop.hbase.regionserver.StoreEngine.addStoreFiles(StoreEngine.java:474)
        
org.apache.hadoop.hbase.regionserver.HStore.completeFlush(HStore.java:902)
        org.apache.hadoop.hbase.regionserver.HStore.access$1100(HStore.java:130)
        
org.apache.hadoop.hbase.regionserver.HStore$StoreFlusherImpl.commit(HStore.java:2004)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushCacheAndCommit(HRegion.java:3029)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2730)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2702)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2693)
        org.apache.hadoop.hbase.regionserver.HRegion.doClose(HRegion.java:1855)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1665)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1620)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1603)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1569)
        
org.apache.hadoop.hbase.HBaseTestingUtil.closeRegionAndWAL(HBaseTestingUtil.java:362)
        
org.apache.hadoop.hbase.regionserver.TestHRegion.tearDown(TestHRegion.java:272)
        jdk.internal.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.base/java.lang.reflect.Method.invoke(Method.java:568)
        
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        
org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
        
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
        org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
        
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)
        org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        java.base/java.lang.Thread.run(Thread.java:833)
#2:
        org.apache.hadoop.hbase.nio.RefCnt.maybeRecord(RefCnt.java:120)
        org.apache.hadoop.hbase.nio.RefCnt.release(RefCnt.java:83)
        
org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.decScannerCount(MemStoreLABImpl.java:291)
        
org.apache.hadoop.hbase.regionserver.Segment.decScannerCount(Segment.java:195)
        
org.apache.hadoop.hbase.regionserver.SnapshotSegmentScanner.close(SnapshotSegmentScanner.java:95)
        
org.apache.hadoop.hbase.regionserver.KeyValueHeap.close(KeyValueHeap.java:216)
        
org.apache.hadoop.hbase.regionserver.StoreScanner.clearAndClose(StoreScanner.java:956)
        
org.apache.hadoop.hbase.regionserver.StoreScanner.close(StoreScanner.java:508)
        
org.apache.hadoop.hbase.regionserver.StoreScanner.close(StoreScanner.java:489)
        
org.apache.hadoop.hbase.regionserver.DefaultStoreFlusher.flushSnapshot(DefaultStoreFlusher.java:79)
        org.apache.hadoop.hbase.regionserver.HStore.flushCache(HStore.java:829)
        
org.apache.hadoop.hbase.regionserver.HStore$StoreFlusherImpl.flushCache(HStore.java:1970)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushCacheAndCommit(HRegion.java:3022)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2730)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2702)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2693)
        org.apache.hadoop.hbase.regionserver.HRegion.doClose(HRegion.java:1855)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1665)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1620)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1603)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1569)
        
org.apache.hadoop.hbase.HBaseTestingUtil.closeRegionAndWAL(HBaseTestingUtil.java:362)
        
org.apache.hadoop.hbase.regionserver.TestHRegion.tearDown(TestHRegion.java:272)
        jdk.internal.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.base/java.lang.reflect.Method.invoke(Method.java:568)
        
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        
org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
        
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
        org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
        
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)
        org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        java.base/java.lang.Thread.run(Thread.java:833)
#3:
        org.apache.hadoop.hbase.nio.RefCnt.maybeRecord(RefCnt.java:120)
        org.apache.hadoop.hbase.nio.RefCnt.retain(RefCnt.java:71)
        
org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.incScannerCount(MemStoreLABImpl.java:283)
        
org.apache.hadoop.hbase.regionserver.Segment.incScannerCount(Segment.java:189)
        
org.apache.hadoop.hbase.regionserver.SnapshotSegmentScanner.<init>(SnapshotSegmentScanner.java:38)
        
org.apache.hadoop.hbase.regionserver.ImmutableSegment.getSnapshotScanners(ImmutableSegment.java:96)
        
org.apache.hadoop.hbase.regionserver.MemStoreSnapshot.getScanners(MemStoreSnapshot.java:86)
        
org.apache.hadoop.hbase.regionserver.DefaultStoreFlusher.flushSnapshot(DefaultStoreFlusher.java:54)
        org.apache.hadoop.hbase.regionserver.HStore.flushCache(HStore.java:829)
        
org.apache.hadoop.hbase.regionserver.HStore$StoreFlusherImpl.flushCache(HStore.java:1970)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushCacheAndCommit(HRegion.java:3022)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2730)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2702)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2693)
        org.apache.hadoop.hbase.regionserver.HRegion.doClose(HRegion.java:1855)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1665)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1620)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1603)
        org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:1569)
        
org.apache.hadoop.hbase.HBaseTestingUtil.closeRegionAndWAL(HBaseTestingUtil.java:362)
        
org.apache.hadoop.hbase.regionserver.TestHRegion.tearDown(TestHRegion.java:272)
        jdk.internal.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.base/java.lang.reflect.Method.invoke(Method.java:568)
        
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        
org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
        
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
        org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
        
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)
        org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        java.base/java.lang.Thread.run(Thread.java:833)
#4:
        org.apache.hadoop.hbase.nio.RefCnt.maybeRecord(RefCnt.java:120)
        org.apache.hadoop.hbase.nio.RefCnt.retain(RefCnt.java:71)
        
org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.incScannerCount(MemStoreLABImpl.java:283)
        
org.apache.hadoop.hbase.regionserver.Segment.incScannerCount(Segment.java:189)
        
org.apache.hadoop.hbase.regionserver.SegmentScanner.<init>(SegmentScanner.java:65)
        
org.apache.hadoop.hbase.regionserver.Segment.getScanner(Segment.java:126)
        
org.apache.hadoop.hbase.regionserver.AbstractMemStore.addToScanners(AbstractMemStore.java:74)
        
org.apache.hadoop.hbase.regionserver.DefaultMemStore.getScanners(DefaultMemStore.java:137)
        org.apache.hadoop.hbase.regionserver.HStore.getScanners(HStore.java:987)
        
org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:249)
        
org.apache.hadoop.hbase.regionserver.HStore.createScanner(HStore.java:1720)
        org.apache.hadoop.hbase.regionserver.HStore.getScanner(HStore.java:1709)
        
org.apache.hadoop.hbase.regionserver.RegionScannerImpl.initializeScanners(RegionScannerImpl.java:166)
        
org.apache.hadoop.hbase.regionserver.RegionScannerImpl.<init>(RegionScannerImpl.java:146)
        
org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:3202)
        
org.apache.hadoop.hbase.regionserver.HRegion.lambda$getScanner$7(HRegion.java:3187)
        org.apache.hadoop.hbase.trace.TraceUtil.trace(TraceUtil.java:216)
        
org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:3173)
        
org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:3168)
        
org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:3162)
        
org.apache.hadoop.hbase.regionserver.TestHRegion.testIndexesScanWithOneDeletedRow(TestHRegion.java:4886)
        java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
        
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.base/java.lang.reflect.Method.invoke(Method.java:568)
        
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
        
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)
        org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        java.base/java.lang.Thread.run(Thread.java:833)
Created at:
        org.apache.hadoop.hbase.nio.RefCnt.<init>(RefCnt.java:59)
        org.apache.hadoop.hbase.nio.RefCnt.create(RefCnt.java:54)
        
org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.<init>(MemStoreLABImpl.java:108)
        jdk.internal.reflect.GeneratedConstructorAccessor14.newInstance(Unknown 
Source)
        
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        
org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:61)
        
org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:49)
        
org.apache.hadoop.hbase.regionserver.MemStoreLAB.newInstance(MemStoreLAB.java:116)
        
org.apache.hadoop.hbase.regionserver.SegmentFactory.createMutableSegment(SegmentFactory.java:81)
        
org.apache.hadoop.hbase.regionserver.AbstractMemStore.resetActive(AbstractMemStore.java:93)
        
org.apache.hadoop.hbase.regionserver.DefaultMemStore.snapshot(DefaultMemStore.java:107)
        
org.apache.hadoop.hbase.regionserver.HStore$StoreFlusherImpl.prepare(HStore.java:1953)
        
org.apache.hadoop.hbase.regionserver.HRegion.lambda$internalPrepareFlushCache$5(HRegion.java:2856)
        java.base/java.util.TreeMap.forEach(TreeMap.java:1282)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalPrepareFlushCache(HRegion.java:2855)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2728)
        
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2702)
        
org.apache.hadoop.hbase.regionserver.HRegion.flushcache(HRegion.java:2572)
        
org.apache.hadoop.hbase.regionserver.HRegion.flushcache(HRegion.java:2495)
        org.apache.hadoop.hbase.regionserver.HRegion.flush(HRegion.java:2465)
        
org.apache.hadoop.hbase.regionserver.TestHRegion.testIndexesScanWithOneDeletedRow(TestHRegion.java:4869)
        java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
        
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.base/java.lang.reflect.Method.invoke(Method.java:568)
        
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
        
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)
        org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        java.base/java.lang.Thread.run(Thread.java:833)
{noformat}

> Possible memory leak in MemStoreLAB implementation
> --------------------------------------------------
>
>                 Key: HBASE-27941
>                 URL: https://issues.apache.org/jira/browse/HBASE-27941
>             Project: HBase
>          Issue Type: Bug
>          Components: in-memory-compaction, regionserver
>            Reporter: Duo Zhang
>            Priority: Major
>
> We got this error message when running ITBLL against branch-3.
> {noformat}
> 2023-06-09 14:44:15,386 ERROR 
> [regionserver/core-1-2:16020-shortCompactions-0] util.ResourceLeakDetector: 
> LEAK: RefCnt.release() was not called before it's garbage-collected. See 
> https://netty.io/wiki/reference-counted-objects.html for more information.
> Recent access records:
> Created at:
>         org.apache.hadoop.hbase.nio.RefCnt.<init>(RefCnt.java:59)
>         org.apache.hadoop.hbase.nio.RefCnt.create(RefCnt.java:54)
>         
> org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.<init>(MemStoreLABImpl.java:108)
>         sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)
>         
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:55)
>         
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:43)
>         
> org.apache.hadoop.hbase.regionserver.MemStoreLAB.newInstance(MemStoreLAB.java:116)
>         
> org.apache.hadoop.hbase.regionserver.SegmentFactory.createMutableSegment(SegmentFactory.java:81)
>         
> org.apache.hadoop.hbase.regionserver.AbstractMemStore.resetActive(AbstractMemStore.java:93)
>         
> org.apache.hadoop.hbase.regionserver.AbstractMemStore.<init>(AbstractMemStore.java:83)
>         
> org.apache.hadoop.hbase.regionserver.DefaultMemStore.<init>(DefaultMemStore.java:79)
>         sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source)
>         
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:55)
>         
> org.apache.hadoop.hbase.util.ReflectionUtils.newInstance(ReflectionUtils.java:92)
>         
> org.apache.hadoop.hbase.regionserver.HStore.getMemstore(HStore.java:377)
>         org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:283)
>         
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:6904)
>         org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1173)
>         org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1170)
>         java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         java.lang.Thread.run(Thread.java:750)
> {noformat}
> Need to dig more.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to