Matteo Bertozzi created HBASE-13314: ---------------------------------------
Summary: Fix NPE in HMaster.getClusterStatus() Key: HBASE-13314 URL: https://issues.apache.org/jira/browse/HBASE-13314 Project: HBase Issue Type: Bug Reporter: Matteo Bertozzi Assignee: Matteo Bertozzi Priority: Minor On a test cluster we got a {noformat} java.lang.NullPointerException at org.apache.hadoop.hbase.master.HMaster.getClusterStatus(HMaster.java:1742) at org.apache.hadoop.hbase.master.balancer.ClusterStatusChore.chore(ClusterStatusChore.java:50) at org.apache.hadoop.hbase.Chore.run(Chore.java:87) {noformat} In HMaster.getClusterStatus() we have a couple of NPE. listChildrenNoWatch() may return null if the node is not found {code} try { backupMasterStrings = ZKUtil.listChildrenNoWatch(this.zooKeeper, this.zooKeeper.backupMasterAddressesZNode); <--- THIS MAY RETURN NULL } catch (KeeperException e) { LOG.warn(this.zooKeeper.prefix("Unable to list backup servers"), e); backupMasterStrings = new ArrayList<String>(0); } List<ServerName> backupMasters = new ArrayList<ServerName>( backupMasterStrings.size()); <--- WE DON'T CHECK FOR NULL {code} then below, we build ClusterStatus with args that may be null {code} String clusterId = fileSystemManager != null ? fileSystemManager.getClusterId().toString() : null; Map<String, RegionState> regionsInTransition = assignmentManager != null ? assignmentManager.getRegionStates().getRegionsInTransition() : null; String[] coprocessors = cpHost != null ? getMasterCoprocessors() : null; Map<ServerName, ServerLoad> onlineServers = null; Set<ServerName> deadServers = null; if (serverManager != null) { deadServers = serverManager.getDeadServers().copyServerNames(); onlineServers = serverManager.getOnlineServers(); } return new ClusterStatus(VersionInfo.getVersion(), clusterId, onlineServers, deadServers, serverName, backupMasters, regionsInTransition, coprocessors, balancerOn); {code} In ClusterStatus equals(), hashCode(), toString() we don't check for nulls -- This message was sent by Atlassian JIRA (v6.3.4#6332)