Description
We will check whether server carrying ROOT/META when expiring the server.
See ServerManager#expireServer.
If the dead server carrying META, we assign meta directly in the process of ServerShutdownHandler.
If the dead server carrying ROOT, we will offline ROOT and then verifyAndAssignRootWithRetries()
How judgement of carrtying ROOT/META become wrong?
If region is in RIT, and isCarryingRegion() return true after addressing from zk.
However, once RIT time out(could be caused by this.allRegionServersOffline && !noRSAvailable, see AssignmentManager#TimeoutMonitor) and we assign it to otherwhere, this judgement become wrong.
See AssignmentManager#isCarryingRegion for details
With the wrong judgement of carrtying ROOT/META, we would assign ROOT/META twice.