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

Andrew Kyle Purtell commented on HBASE-22923:
---------------------------------------------

[~vjasani] Way back when RSGroups was first proposed, there were concerns about 
it, and to resolve those concerns the community imposed this requirement: _All 
RSgroups changes must be optional, and confined to the hbase-rsgroups module_, 
with only case by case exceptions for enabling plug points in hbase-server and 
other core modules. This requirement demanded the admin APIs for rsgroups 
should also be in the hbase-rsgroups module, and this is the reason for 
RSGroupInfoManager. 

So that's the historical reason for the separation, and I assume for 
compatibility guideline reasons hbase-rsgroups was only merged into the core 
modules in master branch for HBase 3. 

Anyway, in your scenario, this seems like the key problem:
{quote}Bring up new RegionServer on higher version.  [...] One dedicated thread 
in AM will try to assign meta (and other system tables) to newly brought RS 
with higher version but will fail to bring it online because newly brought up 
RS is not under jurisdiction of system RSGroup. 

{quote}
This behavior is introduced specifically for rolling upgrade, because META 
might need to be migrated, and earlier thinking was a regionserver could do it, 
but latest thinking is it is better for the master to migrate META and other 
tables, thus changing how we do rolling upgrades, thus changing the 
requirements for this behavior. At the very least we can make it optional. 

> hbase:meta is assigned to localhost when we downgrade the hbase version
> -----------------------------------------------------------------------
>
>                 Key: HBASE-22923
>                 URL: https://issues.apache.org/jira/browse/HBASE-22923
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.4.8
>            Reporter: wenbang
>            Priority: Major
>
> When we downgrade the hbase version(rsgroup enable), we found that the 
> hbase:meta table could not be assigned.
> {code:java}
> master.AssignmentManager: Failed assignment of hbase:meta,,1.1588230740 to 
> localhost,1,1, trying to assign elsewhere instead; try=1 of 10 
> java.io.IOException: Call to localhost/127.0.0.1:1 failed on local exception: 
> org.apache.hadoop.hbase.ipc.FailedServerException: This server is in the 
> failed servers list: localhost/127.0.0.1:1
> {code}
> hbase group list:
>   HBASE_META group(hbase:meta and other system tables)
>   default group
> 1.Down grade all servers in HBASE_META first
> 2.higher version servers is in default
> 3.hbase:meta assigned to localhost
> For system table, we assign them to a server with highest version.
> AssignmentManager#getExcludedServersForSystemTable
> But did not consider the rsgroup.



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

Reply via email to