[ https://issues.apache.org/jira/browse/HBASE-2696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12884965#action_12884965 ]
Jonathan Gray commented on HBASE-2696: -------------------------------------- There are many open issues still. Basically all ZooKeeper operations will throw both {{KeeperException}} and {{InterruptedException}}. Usually for each operation there are some expected KeeperExceptions like NODEEXISTS, BADVERSION, NONODE. There are also some nastier ones like CONNECTIONLOSS. So my thinking there is to explicitly deal with the KeeperExceptions that we expect, make sure to document the contract in the javadoc. All other KeeperExceptions should abort the server. Full list of KeeperException codes: http://hadoop.apache.org/zookeeper/docs/r3.3.1/api/org/apache/zookeeper/KeeperException.Code.html As for InterruptedException, this is always one of those special things. It will get clunky if we let them out of all the methods, can we get away with just returning null/false values and logging the exception? :) > ZooKeeper cleanup and refactor > ------------------------------ > > Key: HBASE-2696 > URL: https://issues.apache.org/jira/browse/HBASE-2696 > Project: HBase > Issue Type: Sub-task > Components: master, regionserver, zookeeper > Reporter: Jonathan Gray > Assignee: Jonathan Gray > Priority: Critical > Fix For: 0.21.0 > > Attachments: HBASE-2696-part1-NewClasses_NotIntegrated.patch > > > Currently almost everything we do with ZooKeeper is stuffed into a single > class {{ZookeeperWrapper}}. > This issue will deal with cleaning up our usage of ZK, adding some new > abstractions to help with the master changes, splitting up watchers from > utility methods, and nailing down the contracts of our ZK methods with > respect to setting watchers, throwing exceptions, etc... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.