[ https://issues.apache.org/jira/browse/HBASE-5289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13194175#comment-13194175 ]
Zhihong Yu commented on HBASE-5289: ----------------------------------- Thanks for reporting this case, Krystian. Do you want to upload a patch ? > NullPointerException in resetZooKeeperTrackers in HConnectionManager / > HConnectionImplementation > ------------------------------------------------------------------------------------------------ > > Key: HBASE-5289 > URL: https://issues.apache.org/jira/browse/HBASE-5289 > Project: HBase > Issue Type: Bug > Components: client > Affects Versions: 0.90.5 > Reporter: Krystian Nowak > Fix For: 0.94.0, 0.92.1 > > > This might happen on heavy load in case of lagging HBase when sharing one > HConnection by multiple threads: > {noformat} > 2012-01-26 13:59:38,396 ERROR [http://*:8080-251-EventThread] > zookeeper.ClientCnxn$EventThread(532): Error while calling watcher > java.lang.NullPointerException > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.resetZooKeeperTrackers(HConnectionManager.java:533) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.abort(HConnectionManager.java:1536) > at > org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.connectionEvent(ZooKeeperWatcher.java:344) > at > org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.process(ZooKeeperWatcher.java:262) > at > org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530) > at > org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:506) > {noformat} > The following code is not protected against NPE: > {code} > private synchronized void resetZooKeeperTrackers() > throws ZooKeeperConnectionException { > LOG.info("Trying to reconnect to zookeeper"); > masterAddressTracker.stop(); > masterAddressTracker = null; > rootRegionTracker.stop(); > rootRegionTracker = null; > clusterId = null; > this.zooKeeper = null; > setupZookeeperTrackers(); > } > {code} > In some cases as proven by the log snippet above it might happen that either > masterAddressTracker or rootRegionTracker might be null. > Because of the NPE the code can't reach setupZookeeperTrackers() call. > This should be fixed at least the way as shown in one of the patches in > HBASE-5153 > {code} > LOG.info("Trying to reconnect to zookeeper."); > if (this.masterAddressTracker != null) { > this.masterAddressTracker.stop(); > this.masterAddressTracker = null; > } > if (this.rootRegionTracker != null) { > this.rootRegionTracker.stop(); > this.rootRegionTracker = null; > } > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira