@Override
              public Boolean run() throws IOException {
                return setupSaslConnection(in2, out2, serverPrincipal);
              }
If multiple clients with the same principal try to connect to the same server at the same time,
the server assumes a replay attack is in progress. This is a feature of kerberos. In order to
work around this, what is done is that the client backs off randomly and tries to initiate the
connection again. The other problem is to do with ticket expiry. To handle that, a relogin is
attempted.
<p>
The retry logic is governed by the {@link SaslClientAuthenticationProvider#canRetry()} method.
Some providers have the ability to obtain new credentials and then re-attempt to authenticate
with HBase services. Other providers will continue to fail if they failed the first time -- for
those, we want to fail-fast.
</p>
hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.java