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

Caroline commented on HBASE-25032:
----------------------------------

[~bharathv] Thanks for the explanation, I think that makes sense. I looked at 
the code some more and it seems that we only need to remove the call to 
checkAndRecordNewServer() (this line 
[https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java#L230)]
 within ServerManager's regionServerStartup() function and the rest of what you 
suggested is covered. This is because HRegionServer's run() method calls 
tryRegionServerReport() (this line 
[https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java#L1086)]
 after the reportForDuty/handleReportForDuty logic is done, and the 
tryRegionServerReport() function contains a call to master's 
regionServerReport() function (here 
[https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java#L278)]
 which contains a call to checkAndRecordNewServer() already. Please correct me 
if I misunderstood anything.

> Wait for region server to become online before adding it to online servers in 
> Master
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-25032
>                 URL: https://issues.apache.org/jira/browse/HBASE-25032
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Sandeep Guggilam
>            Assignee: Caroline
>            Priority: Major
>
> As part of RS start up, RS reports for duty to Master . Master acknowledges 
> the request and adds it to the onlineServers list for further assigning any 
> regions to the RS
> Once Master acknowledges the reportForDuty and sends back the response, RS 
> does a bunch of stuff like initializing replication sources etc before 
> becoming online. However, sometimes there could be an issue with initializing 
> replication sources when it is unable to connect to peer clusters because of 
> some kerberos configuration and there would be a delay of around 20 mins in 
> becoming online.
>  
> Since master considers it online, it tries to assign regions and which fails 
> with ServerNotRunningYet exception, then the master tries to unassign which 
> again fails with the same exception leading the region to FAILED_CLOSE state.
>  
> It would be good to have a check to see if the RS is ready to accept the 
> assignment requests before adding it to online servers list which would 
> account for any such delays as described above



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

Reply via email to