accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-4317) Accumulo client causes 'too many files open' due to infinite loop.
Date Fri, 27 May 2016 17:47:12 GMT

    [ https://issues.apache.org/jira/browse/ACCUMULO-4317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15304447#comment-15304447
] 

Josh Elser commented on ACCUMULO-4317:
--------------------------------------

Relevant code from 1.7.1:

{code}
  public static void executeRaw(ClientContext context, ClientExec<ClientService.Client>
exec) throws Exception {
    while (true) {
      ClientService.Client client = null;
      String server = null;
      try {
        Pair<String,Client> pair = ServerClient.getConnection(context);
        server = pair.getFirst();
        client = pair.getSecond();
        exec.execute(client);
        break;
      } catch (TTransportException tte) {
        log.debug("ClientService request failed " + server + ", retrying ... ", tte);
        UtilWaitThread.sleep(100);
      } finally {
        if (client != null)
          ServerClient.close(client);
      }
    }
  }

  public static void close(ClientService.Client client) {
    if (client != null && client.getInputProtocol() != null && client.getInputProtocol().getTransport()
!= null) {
      ThriftTransportPool.getInstance().returnTransport(client.getInputProtocol().getTransport());
    } else {
      log.debug("Attempt to close null connection to a server", new Exception());
    }
  }
{code}

Looks to me that the socket will ultimately be closed.

> Accumulo client causes 'too many files open' due to infinite loop.
> ------------------------------------------------------------------
>
>                 Key: ACCUMULO-4317
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4317
>             Project: Accumulo
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 1.7.1
>            Reporter: Michiel Vanderlee
>            Priority: Minor
>
> Accumulo stores hostnames in zookeeper, if the client can not resolve these then it will
continue to try to connect in a while(true) loop. This will eventually cause 'too many files
open' errors.
> Loop is in ServerClient.java$executeRaw
> Bug: Should error out after some time, not retry infintely.
> Workaround: Add hostnames to /etc/hosts and restart.



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

Mime
View raw message