[ 
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

        

Reply via email to