You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Vaibhav Gumashta (JIRA)" <ji...@apache.org> on 2014/11/04 08:07:33 UTC

[jira] [Updated] (HIVE-8723) Set reasonable connection timeout for CuratorFramework ZooKeeper clients in Hive

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

Vaibhav Gumashta updated HIVE-8723:
-----------------------------------
    Attachment: HIVE-8723.1.patch

> 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
>         Attachments: HIVE-8723.1.patch
>
>
> 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)