[ 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)