[ https://issues.apache.org/jira/browse/HBASE-9157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jeffrey Zhong updated HBASE-9157: --------------------------------- Resolution: Fixed Fix Version/s: 0.99.2 0.98.8 Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) Thanks for the reviews! I've integrated the fix into 0.99 and 0.98 branch with a small modification(only breaking out loop for SessionExpiredException & AuthFailedException) > 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 > Fix For: 0.98.8, 0.99.2 > > 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)