[ 
https://issues.apache.org/jira/browse/HBASE-5289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack resolved HBASE-5289.
--------------------------
    Resolution: Cannot Reproduce

Resolve as cannot reproduce

> 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
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to