private static boolean checkIfTimedout(final Configuration conf, final long recoveryTimeout,
    final int nbAttempt, final Path p, final long startWaiting) {
    if (recoveryTimeout < EnvironmentEdgeManager.currentTime()) {
      LOG.warn("Cannot recoverLease after trying for "
        + conf.getInt("hbase.lease.recovery.timeout", 900000)
        + "ms (hbase.lease.recovery.timeout); continuing, but may be DATALOSS!!!; "
        + getLogMessageDetail(nbAttempt, p, startWaiting));
      return true;
    }
    return false;
  }
Recover the lease from Hadoop file system, retrying multiple times.
hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/util/RecoverLeaseFSUtils.java