[
https://issues.apache.org/jira/browse/HBASE-5094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ramkrishna.s.vasudevan updated HBASE-5094:
------------------------------------------
Description:
R1 is reassigned to RS3 during RS1 shutdown, even though R1 was just assigned
to RS2 by load balancer. So .META. table indicated R1 is on RS3. Both RS2 and
RS3 think they have R1. Later when RS3 shutdown, R1 is reassigned to RS2. RS2
will indicate ALREADY_OPENED. Thus the region is considered assigned to RS2
even though .META. indicates it is on RS3.
1) Region R1 - Assigned from RS1 to RS2.
2) RS1 goes down and ServerShutDownHandler. ServerShutDwonHandler finds RS1
with R1 from META as still META is not yet updated to RS2.
3) As RS1 goes down R1 is assigned from RS1 to RS3.
4) RS3 goes down. ServerShutdownHandler processes R1 and tries to assign it to
RS2.
5) RS2 says ALREADY_OPENED but META shows RS3.
I was able to reproduce the scenario.
was:
R1 is reassigned to RS3 during RS1 shutdown, even though R1 was just assigned
to RS2 by load balancer. So .META. table indicated R1 is on RS3. Both RS2 and
RS3 think they have R1. Later when RS3 shutdown, R1 is reassigned to RS2. RS2
will indicate ALREADY_OPENED. Thus the region is considered assigned to RS2
even though .META. indicates it is on RS3.
T1: Load balancer tried to move R1 from RS1 to RS2
. 2011-11-21 14:03:20,812 INFO org.apache.hadoop.hbase.master.HMaster: balance
hri=tableXY,\xB8Q\xEB\x85\x1E\xB8Q\xDF,1321573099841.ee2e205a60f1bb06cc73bc9df06289df.,
src=skynet-1,60020,1321912978281, dest=skynet-4,60020,1321912999305
T2: RS1 shutdown. 2011-11-21 14:03:24,759 DEBUG
org.apache.hadoop.hbase.master.ServerManager:
Added=skynet-1,60020,1321912978281 to dead servers, submitted shutdown handler
to be executed, root=false, meta=true
T3:R1 is opened on RS2. 2011-11-21 14:03:26,131 DEBUG
org.apache.hadoop.hbase.master.handler.OpenedRegionHandler: The master has
opened the region
tableXY,\xB8Q\xEB\x85\x1E\xB8Q\xDF,1321573099841.ee2e205a60f1bb06cc73bc9df06289df.
that was online on skynet-4,60020,1321912999305
T4: As part of RS1 shutdown handling, region reassignment starts. It uses the
region location captured at T2. 2011-11-21 14:03:26,152 INFO
org.apache.hadoop.hbase.master.handler.ServerShutdownHandler: Reassigning 32
region(s) that skynet-1,60020,1321912978281 was carrying (skipping 0 regions(s)
that are already in transition)
T5: R1 is assigned to RS3. 2011-11-21 14:03:27,404 DEBUG
org.apache.hadoop.hbase.zookeeper.ZKUtil: master:60000-0x133b84f9f490000
Retrieved 115 byte(s) of data from znode
/hbase/unassigned/ee2e205a60f1bb06cc73bc9df06289df;
data=region=tableXY,\xB8Q\xEB\x85\x1E\xB8Q\xDF,1321573099841.ee2e205a60f1bb06cc73bc9df06289df.,
origin=skynet-3,60020,1321912991430, state=RS_ZK_REGION_OPENED
T6: RS3 shutdown. R1 is reassigned to RS2. 2011-11-21 14:03:37,899 DEBUG
org.apache.hadoop.hbase.master.AssignmentManager: ALREADY_OPENED region
tableXY,\xB8Q\xEB\x85\x1E\xB8Q\xDF,1321573099841.ee2e205a60f1bb06cc73bc9df06289df.
to skynet-4,60020,1321912999305
>From AssignmentManager point of view, the R1 is assigned to RS2. The .META.
>table indicates the location is RS3.
> The META can hold an entry for a region with a different server name from the
> one actually in the AssignmentManager thus making the region inaccessible.
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-5094
> URL: https://issues.apache.org/jira/browse/HBASE-5094
> Project: HBase
> Issue Type: Bug
> Reporter: ramkrishna.s.vasudevan
>
> R1 is reassigned to RS3 during RS1 shutdown, even though R1 was just assigned
> to RS2 by load balancer. So .META. table indicated R1 is on RS3. Both RS2 and
> RS3 think they have R1. Later when RS3 shutdown, R1 is reassigned to RS2. RS2
> will indicate ALREADY_OPENED. Thus the region is considered assigned to RS2
> even though .META. indicates it is on RS3.
> 1) Region R1 - Assigned from RS1 to RS2.
> 2) RS1 goes down and ServerShutDownHandler. ServerShutDwonHandler finds RS1
> with R1 from META as still META is not yet updated to RS2.
> 3) As RS1 goes down R1 is assigned from RS1 to RS3.
> 4) RS3 goes down. ServerShutdownHandler processes R1 and tries to assign it
> to RS2.
> 5) RS2 says ALREADY_OPENED but META shows RS3.
> I was able to reproduce the scenario.
--
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