[
https://issues.apache.org/jira/browse/HBASE-28893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wellington Chevreuil resolved HBASE-28893.
------------------------------------------
Resolution: Fixed
Merged to master, branch-3 and branch-2.
> RefCnt Leak error when closing a HalfStoreFileReader
> ----------------------------------------------------
>
> Key: HBASE-28893
> URL: https://issues.apache.org/jira/browse/HBASE-28893
> Project: HBase
> Issue Type: Bug
> Affects Versions: 3.0.0-beta-1, 2.7.0
> Reporter: Wellington Chevreuil
> Assignee: Wellington Chevreuil
> Priority: Major
> Fix For: 3.0.0, 2.7.0
>
>
> In HBASE-28596 we have added ability for references to get resolved to the
> original file blocks in bucket cache. As part of this, we had to modify
> HalfStoreFileReader.close method, to create a scanner and seek to boundary
> cell in order to get the related offset and calculate the limiting offset for
> blocks we want to evict. We missed close the scanner instance there, which
> then cause the refcount leaks reported as below:
> {noformat}
> 2024-09-25 14:24:51,292 ERROR
> org.apache.hbase.thirdparty.io.netty.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.nio.ByteBuff.wrap(ByteBuff.java:550)
>
> org.apache.hadoop.hbase.io.ByteBuffAllocator.allocate(ByteBuffAllocator.java:357)
>
> org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.read(FileIOEngine.java:134)
>
> org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.getBlock(BucketCache.java:666)
>
> org.apache.hadoop.hbase.io.hfile.CombinedBlockCache.getBlock(CombinedBlockCache.java:98)
>
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.getCachedBlock(HFileReaderImpl.java:1102)
>
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1287)
>
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1248)
>
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:318)
>
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:670)
>
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:623)
>
> org.apache.hadoop.hbase.io.HalfStoreFileReader.close(HalfStoreFileReader.java:368)
>
> org.apache.hadoop.hbase.regionserver.HStore.removeCompactedfiles(HStore.java:2352)
>
> org.apache.hadoop.hbase.regionserver.HStore.closeAndArchiveCompactedFiles(HStore.java:2314)
>
> org.apache.hadoop.hbase.regionserver.CompactedHFilesDischargeHandler.process(CompactedHFilesDischargeHandler.java:41)
>
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)