[
https://issues.apache.org/jira/browse/HBASE-30302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dong0829 updated HBASE-30302:
-----------------------------
Description:
CatalogJanitor.cleanParent gates GCRegionProcedure on whether the daughters
still reference the parent, and that check only ever tested
StoreFileInfo.isReference() – never HFileLink.isHFileLink(). A daughter holding
nothing but HFileLinks therefore reported "no references", so the parent was
collected after the split while the daughters still depended on it. The
daughters' links were then left dangling and the regions failed to open with
FileNotFoundException.
Reproduce:
we can reproduce the issue using unit test like create a daughter region with
HFileLinks, and go GC and we can see the parent was GCed
was:CatalogJanitor.cleanParent gates GCRegionProcedure on whether the
daughters still reference the parent, and that check only ever tested
StoreFileInfo.isReference() -- never HFileLink.isHFileLink(). A daughter
holding nothing but HFileLinks therefore reported "no references", so the
parent was collected after the split while the daughters still depended on it.
The daughters' links were then left dangling and the regions failed to open
with FileNotFoundException.
> CatalogJanitor.cleanParent clean the parent who still referred by other
> regions via HFileLink
> ---------------------------------------------------------------------------------------------
>
> Key: HBASE-30302
> URL: https://issues.apache.org/jira/browse/HBASE-30302
> Project: HBase
> Issue Type: Bug
> Components: SFT
> Affects Versions: 2.6.0, 3.0.0
> Reporter: Dong0829
> Assignee: Dong0829
> Priority: Major
>
> CatalogJanitor.cleanParent gates GCRegionProcedure on whether the daughters
> still reference the parent, and that check only ever tested
> StoreFileInfo.isReference() – never HFileLink.isHFileLink(). A daughter
> holding nothing but HFileLinks therefore reported "no references", so the
> parent was collected after the split while the daughters still depended on
> it. The daughters' links were then left dangling and the regions failed to
> open with FileNotFoundException.
>
> Reproduce:
> we can reproduce the issue using unit test like create a daughter region with
> HFileLinks, and go GC and we can see the parent was GCed
--
This message was sent by Atlassian Jira
(v8.20.10#820010)