impala-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cameron (JIRA)" <>
Subject [jira] [Created] (IMPALA-5394) Set socket timeouts while opening TSaslTransport
Date Wed, 31 May 2017 02:54:04 GMT
Doug Cameron created IMPALA-5394:

             Summary: Set socket timeouts while opening TSaslTransport
                 Key: IMPALA-5394
             Project: IMPALA
          Issue Type: Improvement
          Components: Backend
    Affects Versions: Impala 2.8.0
         Environment: Kerberos
            Reporter: Doug Cameron
            Assignee: John Sherman

Similar to IMPALA-3875, on a kerberized system, when the HS2 server does the initial SASL
negotiation after the open, if the client never sends any data, the read() will hang and hangs
the entire server port.

In detail:
- TThreadPoolServer calls getTransport() on a client from the Server
      thread (the thread that does the accepts).
      - TSaslServerTransport->getTransport() calls TSaslTransport->open()
      - TSaslServerTransport->open() tries to negotiate SASL which calls
        - If read/write blocks, the TThreadPoolServer cannot accept
    - This can be demonstrated by running against a kerberos enabled cluster:
            nc <impala host> <hs2 port> &
      then trying to connect to the hs2 port via beeline. The beeline
      connection will hang until the nc process is killed.
    - Can fix by setting the underlying TSocket recvTimeout and sendTimeout
      before the TSaslServerTransport->open() and reset them to 0 after
      open() completes.
    - Consider adding sasl_connect_tcp_timeout_seconds command line option (defaults to 10,
0 to disable)

This message was sent by Atlassian JIRA

View raw message