[ https://issues.apache.org/jira/browse/HBASE-18441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16101286#comment-16101286 ]
Yu Li commented on HBASE-18441: ------------------------------- In branch-1 there's no {{znodePaths.baseZNode}} in {{ZooKeeperWatcher}} and we should use {{ZooKeeperWathcer.assignmentZNode}} instead, will push an addendum soon to fix the compilation error. > ZookeeperWatcher#interruptedException should throw exception > ------------------------------------------------------------ > > Key: HBASE-18441 > URL: https://issues.apache.org/jira/browse/HBASE-18441 > Project: HBase > Issue Type: Bug > Reporter: Yu Li > Assignee: Yu Li > Fix For: 2.0.0, 3.0.0, 1.4.0 > > Attachments: HBASE-18441.patch, HBASE-18441.trivial.patch > > > Currently Zookeeper#interruptedException will swallow the > InterruptedException and only log, which might cause unexpected behavior, > such as when invoking {{ZKUtil#checkExists}} and the watcher thread somehow > interrupted, the method will return -1 which means the checked znode doesn't > exist, while actually the znode exists. > We could also see a TODO tag in the javadoc, which indicates we need some > fix/improvement here: > {code} > /** > * Handles InterruptedExceptions in client calls. > * <p> > * This may be temporary but for now this gives one place to deal with > these. > * <p> > * TODO: Currently, this method does nothing. > * Is this ever expected to happen? Do we abort or can we let it run? > * Maybe this should be logged as WARN? It shouldn't happen? > * <p> > * @param ie > */ > {code} > Here we propose to throw a {{KeeperException$SystemErrorException}} in > {{ZookeeperWatcher#interruptedException}}, and will add a UT case to cover > the interruption scenario. -- This message was sent by Atlassian JIRA (v6.4.14#64029)