private void undeployRegionsForHbi(HbckRegionInfo hi) throws IOException, InterruptedException {
    for (HbckRegionInfo.OnlineEntry rse : hi.getOnlineEntries()) {
      LOG.debug("Undeploy region " + rse.getRegionInfo() + " from " + rse.getServerName());
      try {
        HBaseFsckRepair.closeRegionSilentlyAndWait(connection, rse.getServerName(),
          rse.getRegionInfo());
        offline(rse.getRegionInfo().getRegionName());
      } catch (IOException ioe) {
        LOG.warn("Got exception when attempting to offline region "
          + Bytes.toString(rse.getRegionInfo().getRegionName()), ioe);
      }
    }
  }
Attempts to undeploy a region from a region server based in information in META. Any operations
that modify the file system should make sure that its corresponding region is not deployed to
prevent data races. A separate call is required to update the master in-memory region state
kept in the AssignementManager. Because disable uses this state instead of that found in META,
we can't seem to cleanly disable/delete tables that have been hbck fixed. When used on a
version of HBase that does not have the offline ipc call exposed on the master (&lt;0.90.5,
&lt;0.92.0) a master restart or failover may be required.
hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java