[ 
https://issues.apache.org/jira/browse/HBASE-28427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang resolved HBASE-28427.
-------------------------------
    Fix Version/s: 2.6.0
                   2.4.18
                   3.0.0-beta-2
                   2.5.9
     Hadoop Flags: Reviewed
         Assignee: guluo
       Resolution: Fixed

Pushed all active branches.

THanks [~guluo] fo contributing!

> FNFE related to 'master:store' when moving archived hfiles to global archived 
> dir
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-28427
>                 URL: https://issues.apache.org/jira/browse/HBASE-28427
>             Project: HBase
>          Issue Type: Improvement
>          Components: master
>         Environment: Centos7
> hbase-4.0.0-alpha-1-SNAPSHOT
>            Reporter: guluo
>            Assignee: guluo
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 2.6.0, 2.4.18, 3.0.0-beta-2, 2.5.9
>
>
> Sometimes we encounter the following log.
> {code:java}
> 2024-02-26T18:11:34,934 WARN  [master:store-Store-Compactor] 
> region.MasterRegionFlusherAndCompactor: Failed to move archived hfiles from 
> file:/root/hbase-4.0.0-alpha-1-SNAPSHOT/tmp/hbase/MasterData/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/state
>  to global dir 
> file:/root/hbase-4.0.0-alpha-1-SNAPSHOT/tmp/hbase/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/statejava.io.FileNotFoundException:
>  File 
> file:/root/hbase-4.0.0-alpha-1-SNAPSHOT/tmp/hbase/MasterData/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/state
>  does not exist        at 
> org.apache.hadoop.fs.RawLocalFileSystem.listStatus(RawLocalFileSystem.java:733)
>  ~[hadoop-common-3.3.5.jar:?]        at 
> org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2045) 
> ~[hadoop-common-3.3.5.jar:?]        at 
> org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2089) 
> ~[hadoop-common-3.3.5.jar:?]        at 
> org.apache.hadoop.fs.ChecksumFileSystem.listStatus(ChecksumFileSystem.java:970)
>  ~[hadoop-common-3.3.5.jar:?]        at 
> org.apache.hadoop.hbase.master.region.MasterRegionUtils.moveFilesUnderDir(MasterRegionUtils.java:42)
>  ~[hbase-server-4.0.0-alpha-1-SNAPSHOT.jar:4.0.0-alpha-1-SNAPSHOT]        at 
> org.apache.hadoop.hbase.master.region.MasterRegionFlusherAndCompactor.moveHFileToGlobalArchiveDir(MasterRegionFlusherAndCompactor.java:145)
>  ~[hbase-server-4.0.0-alpha-1-SNAPSHOT.jar:4.0.0-alpha-1-SNAPSHOT]        at 
> org.apache.hadoop.hbase.master.region.MasterRegionFlusherAndCompactor.compact(MasterRegionFlusherAndCompactor.java:157)
>  ~[hbase-server-4.0.0-alpha-1-SNAPSHOT.jar:4.0.0-alpha-1-SNAPSHOT]        at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  ~[?:1.8.0_231]        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  ~[?:1.8.0_231]        at java.lang.Thread.run(Thread.java:748) 
> ~[?:1.8.0_231] {code}
> Analysis:
> Against 'master:store', Archived hfiles would first be placed in 
> \{hbase.rootdir}/MasterData/archive/ after compacting, and then moved to 
> global archived dir.
> 'master:store' has 3 column families:proc,rs,state, if there is empty in one 
> of column families,such as state, no files in this column families will be 
> archived, and 
> \{hbase.rootdir}/MasterData/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/state
>  would do not exist.
> Finally, we will get FileNotFoundException when moving these archived hfiles 
> to global archived dir.
>  
> Although,Current code can avoid this effecting by catching Exception, However 
> it is maybe better to check the dir exists before moving.



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

Reply via email to