@Override
  public void run() {
    if (LOG.isTraceEnabled()) {
      LOG.trace(threadName + ": starting");
    }
    while (waitForWork()) {
      readResponse();
    }
    if (LOG.isTraceEnabled()) {
      LOG.trace(threadName + ": stopped");
    }
  }
Handle connection failures If the current number of retries is equal to the max number of
retries, stop retrying and throw the exception; Otherwise backoff N seconds and try connecting
again. This Method is only called from inside setupIOstreams(), which is synchronized. Hence
the sleep is synchronized; the locks will be retained.
@param curRetries current number of retries
@param maxRetries max number of retries allowed
@param ioe        failure reason
@throws IOException if max number of retries is reached
hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.java