hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HBASE-4590) Master may assign META region twice to two regionservers when regionserver is closed and started repeatedly in short time
Date Sat, 11 Apr 2015 00:54:12 GMT

     [ https://issues.apache.org/jira/browse/HBASE-4590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrew Purtell resolved HBASE-4590.
-----------------------------------
    Resolution: Cannot Reproduce

> 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 was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message