You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (Jira)" <ji...@apache.org> on 2020/09/17 18:41:00 UTC

[jira] [Commented] (HBASE-25059) TransitionRegionStateProcedure should timeout, rollback, retry instead of waiting infinitely on CONFIRMED_OPEN

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

Nick Dimiduk commented on HBASE-25059:
--------------------------------------

In this case, after 220 attempts receiving {{CallTimeoutException}}, the region server starts responding with {{CallQueueTooBigException}}. Still we never give up.

Down in {{RSProcedureDispatcher$ExecuteProceduresRemoteCall#scheduleForRetry}}, I see no consideration for {{CallTimeoutException}}. There is handling for {{CallQueueTooBigException}}, but it's a highly specialized case.

{noformat}
      // This exception is thrown in the rpc framework, where we can make sure that the call has not
      // been executed yet, so it is safe to mark it as fail. Especially for open a region, we'd
      // better choose another region server.
      // Notice that, it is safe to quit only if this is the first time we send request to region
      // server. Maybe the region server has accepted our request the first time, and then there is
      // a network error which prevents we receive the response, and the second time we hit a
      // CallQueueTooBigException, obviously it is not safe to quit here, otherwise it may lead to a
      // double assign...
      if (e instanceof CallQueueTooBigException && numberOfAttemptsSoFar == 0) {
        LOG.warn("request to {} failed due to {}, try={}, this usually because" +
          " server is overloaded, give up", serverName, e.toString(), numberOfAttemptsSoFar);
        return false;
      }
{noformat}

> TransitionRegionStateProcedure should timeout, rollback, retry instead of waiting infinitely on CONFIRMED_OPEN
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-25059
>                 URL: https://issues.apache.org/jira/browse/HBASE-25059
>             Project: HBase
>          Issue Type: Bug
>          Components: Region Assignment
>    Affects Versions: 2.3.2
>            Reporter: Nick Dimiduk
>            Priority: Major
>
> Testing 2.3.2RC1 with ITBLL. The region server assigned to open meta locked up due to HBASE-24896. Meanwhile, the master waits indefinitely on a procedure {{pid=176583, ppid=176532, state=WAITING:REGION_STATE_TRANSITION_CONFIRM_OPENED; TransitRegionStateProcedure table=hbase:meta, region=1588230740, ASSIGN}}.
> AssignmentManager needs a way to rescind assignment when a RS fails to complete within a reasonable timeout window, roll back the procedure, and try again with a new target.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)