Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-26283

RegionServer ignored a procedure dute to repeatedly opening which lead region stuck in RIT

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 2.3.5
    • None
    • Region Assignment
    • None

    Description

             when hbase cluster shut down Suddenlly,  there are some repeatedly opening regions and cause them to stuck in RTI。we found org.apache.hadoop.hbase.regionserver.handler.AssignRegionHandler#process() directly return when handle repeatedly opening regions, and don't report to master,  master unable to  process next status for this procedure, and regions stuck in RIT。so can we  do like this:

      1.  AssignRegionHandler report the region is online if regionserver found the region is online,
      2. or AssignRegionHandler report the region is failed online if regionserver found the region is online, let Hmater to retry。

      please give some suggestions, thanks !

      // code placeholder
      Region onlineRegion = rs.getRegion(encodedName); if (onlineRegion != null) { 
      LOG.warn("Received OPEN for the region:{}, which is already online", regionName);
       // Just follow the old behavior, do we need to call reportRegionStateTransition? Maybe not? 
      // For normal case, it could happen that the rpc call to schedule this handler is succeeded,
       // but before returning to master the connection is broken. And when master tries again, we 
      // have already finished the opening. For this case we do not need to call 
      // reportRegionStateTransition any more.
       return; }
      

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            bolao bolao
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated: