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

Yu Li updated HBASE-26977:
--------------------------
    Affects Version/s: 2.4.9
                       1.7.1

> HMaster's ShutdownHook does not take effect, if tablesOnMaster is false
> -----------------------------------------------------------------------
>
>                 Key: HBASE-26977
>                 URL: https://issues.apache.org/jira/browse/HBASE-26977
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 1.7.1, 2.4.9
>            Reporter: LiangJun He
>            Assignee: LiangJun He
>            Priority: Major
>         Attachments: image-2022-04-26-21-12-51-843.png, 
> image-2022-04-26-21-18-24-884.png, image-2022-04-26-21-22-38-572.png
>
>
> Because we are going to upgrade the HBase kernel version, during the test, I 
> found that the HMaster ShutdownHook of version 1.7.1 and 2.4.9 did not take 
> effect if tablesOnMaster is false. After further confirmation, I found that 
> all versions of HBase 1.x and 2.x have this problem.
> I analyzed the cause of the problem:
> Before HBase 3.x, HMaster registered ShutdownHook by calling the run() method 
> of HRegionServer, but the run() method will be blocked on the 
> waitForMasterActive() method of HMaster(before registering the shutdownhook) 
> if tablesOnMaster is false. Eventually, the ShutdownHook of HMaster was not 
> registered successfully.
> 1. The code path of  HRegionServer's run() method:
> !image-2022-04-26-21-18-24-884.png!
>  
> 2.  The preRegistrationInitialization() method will be called first:
> !image-2022-04-26-21-12-51-843.png!
> 3. The HMaster's waitForMasterActive() method will be blocked if 
> tablesOnMaster is false:
> !image-2022-04-26-21-22-38-572.png!
> Finally, because the default value of tablesOnMaster is false, the 
> ShutdownHook of HMaster was not registered successfully.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to