@Override
    protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)
      throws IOException {
      if (this.invocations++ > 0) {
        // Return w/o problem the second time through here.
        return super.execOpenRegion(server, openReq);
      }
      // The procedure on master will just hang forever because nothing comes back
      // from the RS in this case.
      LOG.info("Return null response from serverName=" + server + "; means STUCK...TODO timeout");
      executor.schedule(new Runnable() {
        @Override
        public void run() {
          LOG.info("Restarting RS of " + server);
          doRestart(server);
        }
      }, 1, TimeUnit.SECONDS);
      return null;
    }
Takes open request and then returns nothing so acts like a RS that went zombie. No response (so
proc is stuck/suspended on the Master and won't wake up.). Different with
HangThenRSCrashExecutor, HangThenRSCrashExecutor will create ServerCrashProcedure to handle the
server crash. However, this HangThenRSRestartExecutor will restart RS directly, situation for
RS crashed when SCP is not enabled.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerBase.java