hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeffrey Zhong (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-9157) ZKUtil.blockUntilAvailable loops forever with non-recoverable errors
Date Wed, 15 Oct 2014 18:43:34 GMT

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

Jeffrey Zhong updated HBASE-9157:
---------------------------------
    Description: 
In one of integration test, I observed that a thread keeps spinning error logs "Unexpected
exception handling blockUntilAvailable" due to KeeperException.ConnectionLossException. Below
is the related code:

{code}    
    while (!finished) {
      try {
        data = ZKUtil.getData(zkw, znode);
      } catch(KeeperException e) {
        LOG.warn("Unexpected exception handling blockUntilAvailable", e);
      }

      if (data == null && (System.currentTimeMillis() +
        HConstants.SOCKET_RETRY_WAIT_MS < endTime)) {
        Thread.sleep(HConstants.SOCKET_RETRY_WAIT_MS);
      } else {
        finished = true;
      }
    }
{code}

ConnectionLossException might be recoverable but SessionExpiredException and AuthFailed are
not recoverable errors, the while loop can't break.

  was:
In one of integration test, I observed that a thread keeps spinning error logs "Unexpected
exception handling blockUntilAvailable" due to KeeperException.ConnectionLossException. Below
is the related code:

{code}    
    while (!finished) {
      try {
        data = ZKUtil.getData(zkw, znode);
      } catch(KeeperException e) {
        LOG.warn("Unexpected exception handling blockUntilAvailable", e);
      }

      if (data == null && (System.currentTimeMillis() +
        HConstants.SOCKET_RETRY_WAIT_MS < endTime)) {
        Thread.sleep(HConstants.SOCKET_RETRY_WAIT_MS);
      } else {
        finished = true;
      }
    }
{code}

Since ConnectionLossException & SessionExpiredException are not recoverable errors, the
while loop can't break.


> ZKUtil.blockUntilAvailable loops forever with non-recoverable errors
> --------------------------------------------------------------------
>
>                 Key: HBASE-9157
>                 URL: https://issues.apache.org/jira/browse/HBASE-9157
>             Project: HBase
>          Issue Type: Bug
>          Components: Zookeeper
>            Reporter: Jeffrey Zhong
>            Assignee: Jeffrey Zhong
>            Priority: Minor
>         Attachments: hbase-9157-v2.patch, hbase-9157.patch
>
>
> In one of integration test, I observed that a thread keeps spinning error logs "Unexpected
exception handling blockUntilAvailable" due to KeeperException.ConnectionLossException. Below
is the related code:
> {code}    
>     while (!finished) {
>       try {
>         data = ZKUtil.getData(zkw, znode);
>       } catch(KeeperException e) {
>         LOG.warn("Unexpected exception handling blockUntilAvailable", e);
>       }
>       if (data == null && (System.currentTimeMillis() +
>         HConstants.SOCKET_RETRY_WAIT_MS < endTime)) {
>         Thread.sleep(HConstants.SOCKET_RETRY_WAIT_MS);
>       } else {
>         finished = true;
>       }
>     }
> {code}
> ConnectionLossException might be recoverable but SessionExpiredException and AuthFailed
are not recoverable errors, the while loop can't break.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message