Details
-
Sub-task
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
Impala 2.12.0
-
None
-
ghx-label-4
Description
A client to server KRPC connection can become stale if the socket was closed on the server side due to various reasons such as idle connection removal or remote Impalad restart. Currently, the KRPC code will invoke the callback of all RPCs using that stale connection with the failed status (e.g. "Connection reset by peer"). DataStreamSender should pattern match against certain error string (as they are mostly output from strerror()) and retry the RPC transparently. This may be also be useful for KUDU-2192 which tracks the effort to detect stuck connection and close them. In which case, we may also want to transparently retry the RPC
FWIW, KUDU-279 is tracking the effort to have a cleaner protocol for connection teardown due to idle client connection removal on the server side. However, Impala still needs to handle other reasons for a stale connection.