hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rajeshbabu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8353) -ROOT-/.META. regions are hanging if master restarted while closing -ROOT-/.META. regions
Date Tue, 16 Apr 2013 18:01:23 GMT

    [ https://issues.apache.org/jira/browse/HBASE-8353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13633094#comment-13633094
] 

rajeshbabu commented on HBASE-8353:
-----------------------------------

RS_ZK_REGION_OPENING has one problem with user regions.
User regions will be hanged if the RS opening a region went down and master restarted.
{code}
        if (regionInfo.isMetaTable()) {
          regionsInTransition.put(encodedRegionName, new RegionState(
              regionInfo, RegionState.State.OPENING, data.getStamp(), data
                  .getOrigin()));
          // If ROOT or .META. table is waiting for timeout monitor to assign
          // it may take lot of time when the assignment.timeout.period is
          // the default value which may be very long.  We will not be able
          // to serve any request during this time.
          // So we will assign the ROOT and .META. region immediately.
          processOpeningState(regionInfo);
          break;
        }
        regionsInTransition.put(encodedRegionName, new RegionState(regionInfo,
            RegionState.State.OPENING, data.getStamp(), data.getOrigin()));

{code}
                
> -ROOT-/.META. regions are hanging if master restarted while closing -ROOT-/.META. regions
> -----------------------------------------------------------------------------------------
>
>                 Key: HBASE-8353
>                 URL: https://issues.apache.org/jira/browse/HBASE-8353
>             Project: HBase
>          Issue Type: Bug
>          Components: Region Assignment
>    Affects Versions: 0.94.6
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>             Fix For: 0.94.8
>
>
> ROOT/META are not getting assigned if master restarted while closing ROOT/META.
> Lets suppose catalog table regions in M_ZK_REGION_CLOSING state during master initialization
and then just we are adding the them to RIT and waiting for TM. {code}
>         if (isOnDeadServer(regionInfo, deadServers) &&
>             (data.getOrigin() == null || !serverManager.isServerOnline(data.getOrigin())))
{
>           // If was on dead server, its closed now. Force to OFFLINE and this
>           // will get it reassigned if appropriate
>           forceOffline(regionInfo, data);
>         } else {
>           // Just insert region into RIT.
>           // If this never updates the timeout will trigger new assignment
>           regionsInTransition.put(encodedRegionName, new RegionState(
>             regionInfo, RegionState.State.CLOSING,
>             data.getStamp(), data.getOrigin()));
>         }
> {code}
> isOnDeadServer always return false to ROOT/META because deadServers is null.
> Even TM cannot close them properly because its not available in online regions since
its not yet assigned.
> {code}
>     synchronized (this.regions) {
>       // Check if this region is currently assigned
>       if (!regions.containsKey(region)) {
>         LOG.debug("Attempted to unassign region " +
>           region.getRegionNameAsString() + " but it is not " +
>           "currently assigned anywhere");
>         return;
>       }
>     }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message