Impala doesn't retry backend thrift connection request. If for any reason (another end too busy, high concurrent requests, crapy network), it cannot open a connection, it will return failure and the query will fail.
It would be nice to add a configurable retry number to let impala retry connecting to increase the connection success in above mentioned situation.
Also there is no timeout for sending and receiving data. Impala will wait forever if send or recv don't return. This is a reasonable choice for recv because we want to use back pressure to slow down downstream operator if upstream one cannot catch up. but for I don't think it makes sense for send. send could hung. A relative large send timeout could help Impala detect connection issues and fail query asap.
ClientCache already supports both retry and timeout parameter when creating a connection. it's very easy to add some configs for retry and timeout.