You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (Commented) (JIRA)" <ji...@apache.org> on 2011/10/14 16:32:12 UTC

[jira] [Commented] (HBASE-4590) Master may assign META region twice to two regionservers when regionserver is closed and started repeatedly in short time

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

Ted Yu commented on HBASE-4590:
-------------------------------

@Chunhui:
Patch makes sense.

HBASE-3446 was checked in yesterday. Now ServerShutdownHandler.isCarryingMeta() returns false. It would be nice if you can verify the scenario for 0.92 snapshot build.

Also, have you run your patch through 0.90 unit test suite ?

Thanks
                
> Master may assign META region twice to two regionservers when regionserver is closed and started repeatedly in short time
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-4590
>                 URL: https://issues.apache.org/jira/browse/HBASE-4590
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.2
>            Reporter: shenchunhui
>         Attachments: assign meta twice.patch
>
>
> In the following case:
> 1.first,kill all the regionservers
> 2.then, start all the regionservers immediately
> 3.then, kill all the regionservers immediately
> 4.then, start all the regionservers immediately
> Master may assign META region twice , and make two regionserver carrying META region.
> Through logs, we find that:
> Before 1, Regionserver A carrys the META region,
> Between 2 and 3 , master receives Regionserver A startup message and is ready to assign meta region to Regionserver B
> But, it fails because of 3, and then reassign meta region to Regionserver C,Then ,it is successful after 4,
> when 4 , Regionserver C is started earlier than Regionserver A , and Regionserver A is started earlier than Regionserver C successfully online the META region. Therefore, when master receives Regionserver A startup message in 4, it consider Regionserver A carryed META region through  CatalogTracker and create a MetaServerShutdownHandler
> In MetaServerShutdownHandler's process(), after completing split hlog, Regionserver C has already onlined META region,
> however it will execute the following code all the same where isCarryingMeta() return true :
> if (isCarryingMeta())this.services.getAssignmentManager().assignMeta();
> After that, META region will online on two regionservers
> In order to prevent it , we should verify meta region location before assign Meta region .

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira