Yu Li created HBASE-18441:
-----------------------------

             Summary: 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


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)

Reply via email to