private LockInterface setupLock() throws IllegalArgumentException {
    if (regionInfos != null) {
      return setupRegionLock();
    } else if (namespace != null) {
      return setupNamespaceLock();
    } else if (tableName != null) {
      return setupTableLock();
    } else {
      LOG.error("Unknown level specified in " + toString());
      throw new IllegalArgumentException("no namespace/table/region provided");
    }
  }
On recovery, re-execute from start to acquire the locks. Need to explicitly set it to RUNNABLE
because the procedure might have been in WAITING_TIMEOUT state when crash happened. In which
case, it'll be sent back to timeout queue on recovery, which we don't want since we want to
require locks.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/locking/LockProcedure.java