prasanthj opened a new pull request #1983: URL: https://github.com/apache/hive/pull/1983
### What changes were proposed in this pull request? JDBC http client retries are applied only during initial connection establishment and is not applied for broken connection cases (idle timeout triggering tcp connection reset). This PR replaces custom retry handler with default retry handler with user specified maxRetries (jdbc param). The default retry handler retries all exceptions exception (InterruptedIOException, UnknownHostException, ConnectException, SSLException) and does not retry non-idempotent http methods which is sufficient for handling the broken connection cases. ### Why are the changes needed? To make jdbc http client more resilient for socket disconnections by the intermediate proxies. ### Does this PR introduce _any_ user-facing change? No. maxRetries is already user facing parameter which is reused. ### How was this patch tested? Tested in Azure with LB timeout set to default 4 mins for idle timeout and nginx reverse proxy (5 min connect, read, write timeout) fronting hiveserver2. 1) Connected using beeline and executed a query. 2) Left beeline untouched for >5 mins. 3) Watched wireshark for TCP RST 4) After TCP RST is received, resubmitted the query beeline Without this patch step 4) returned "Broken Pipe" and if the query takes >5 mins just for execution "Read timeout" is observed. With this patch both were not observed. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
