Devaraj Das created HBASE-9451: ---------------------------------- Summary: Meta remains unassigned when the meta server crashes with the ClusterStatusListener set Key: HBASE-9451 URL: https://issues.apache.org/jira/browse/HBASE-9451 Project: HBase Issue Type: Bug Reporter: Devaraj Das
While running tests described in HBASE-9338, ran into this problem. The hbase.status.listener.class was set to org.apache.hadoop.hbase.client.ClusterStatusListener$MultiCastListener. 1. I had the meta server coming down 2. The metaSSH got triggered. The call chain: 2.1 verifyAndAssignMetaWithRetries 2.2 verifyMetaRegionLocation 2.3 waitForMetaServerConnection 2.4 getMetaServerConnection 2.5 getCachedConnection 2.6 HConnectionManager.getAdmin(serverName, false) 2.7 isDeadServer(serverName) -> This is hardcoded to return 'false' when the clusterStatusListener field is null. If clusterStatusListener is not null (in my test), then it could return true in certain cases (and in this case, indeed it should return true since the server is down). I am trying to understand why it's hardcoded to 'false' for former case. 3. When isDeadServer returns true, the method HConnectionManager.getAdmin(ServerName, boolean) throws RegionServerStoppedException. 4. Finally, after the retries are over verifyAndAssignMetaWithRetries gives up and the master aborts. The methods in the above call chain don't handle RegionServerStoppedException. Maybe something to look at... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira