[
https://issues.apache.org/jira/browse/IMPALA-5394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sailesh Mukil resolved IMPALA-5394.
-----------------------------------
Resolution: Fixed
Fix Version/s: Impala 2.11.0
Commit in:
https://github.com/apache/incubator-impala/commit/4dd0f1b3d84f67eb40bf671160b057be9bbdb921
> Set socket timeouts while opening TSaslTransport
> ------------------------------------------------
>
> Key: IMPALA-5394
> URL: https://issues.apache.org/jira/browse/IMPALA-5394
> Project: IMPALA
> Issue Type: Improvement
> Components: Distributed Exec
> Affects Versions: Impala 2.8.0
> Environment: Kerberos
> Reporter: Doug Cameron
> Assignee: John Sherman
> Priority: Critical
> Fix For: Impala 2.11.0
>
>
> 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:
> {code}
> - 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
> read/write
> - If read/write blocks, the TThreadPoolServer cannot accept
> connections
> - 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)
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)