Vaibhav Gumashta created HIVE-8723:
--------------------------------------
Summary: Set reasonable connection timeout for CuratorFramework
ZooKeeper clients in Hive
Key: HIVE-8723
URL: https://issues.apache.org/jira/browse/HIVE-8723
Project: Hive
Issue Type: Bug
Affects Versions: 0.14.0
Reporter: Vaibhav Gumashta
Assignee: Vaibhav Gumashta
Currently we use -1, due to which "any" elapsed time is always greater than any
timeout value resulting in an unnecessary connection loss exception. Relevant
code from curator framework:
{code}
private synchronized void checkTimeouts() throws Exception
{
int minTimeout = Math.min(sessionTimeoutMs, connectionTimeoutMs);
long elapsed = System.currentTimeMillis() - connectionStartMs;
if ( elapsed >= minTimeout )
{
if ( zooKeeper.hasNewConnectionString() )
{
handleNewConnectionString();
}
else
{
int maxTimeout = Math.max(sessionTimeoutMs,
connectionTimeoutMs);
if ( elapsed > maxTimeout )
{
if (
!Boolean.getBoolean(DebugUtils.PROPERTY_DONT_LOG_CONNECTION_ISSUES) )
{
log.warn(String.format("Connection attempt unsuccessful
after %d (greater than max timeout of %d). Resetting connection and trying
again with a new connection.", elapsed, maxTimeout));
}
reset();
}
else
{
KeeperException.ConnectionLossException
connectionLossException = new CuratorConnectionLossException();
if (
!Boolean.getBoolean(DebugUtils.PROPERTY_DONT_LOG_CONNECTION_ISSUES) )
{
log.error(String.format("Connection timed out for
connection string (%s) and timeout (%d) / elapsed (%d)",
zooKeeper.getConnectionString(), connectionTimeoutMs, elapsed),
connectionLossException);
}
tracer.get().addCount("connections-timed-out", 1);
throw connectionLossException;
}
}
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)