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

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

After getting the patch for HBASE-28398 in, and also introduce close method for 
memstore, we still a leak when running 
TestHRegion.testReverseScanner_StackOverflow

{noformat}
2024-02-23T22:23:22,884 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:
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.AbstractMemStore.<init>(AbstractMemStore.java:83)
        
org.apache.hadoop.hbase.regionserver.DefaultMemStore.<init>(DefaultMemStore.java:79)
        jdk.internal.reflect.GeneratedConstructorAccessor18.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.newInstance(ReflectionUtils.java:98)
        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:6914)
        org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1178)
        org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1175)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        java.base/java.lang.Thread.run(Thread.java:833)
{noformat}

This should be the first segment when creating the HRegion. Should be related 
to flush logic.

Let me dig more.

> 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: Critical
>
> 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