Sigma-Ma commented on PR #8578:
URL: https://github.com/apache/hbase/pull/8578#issuecomment-5477334245

   > In general, if a peer is still under transiting, we should not get its 
final state? Could you please explain more on the details?
   > 
   > Thanks.
   
   Thank you for pointing this out. You are right that, under normal 
circumstances, the transit RPC completes only after the procedure has finished.
   
   The subtlety in this test is that the Master is intentionally aborted in 
preTransit, so the client may fail before receiving the procedure ID and cannot 
use the RPC completion as the signal. During recovery, 
TRANSIT_PEER_NEW_SYNC_REPLICATION_STATE updates the Master-side state to 
DOWNGRADE_ACTIVE before REFRESH_PEER_SYNC_REPLICATION_STATE_ON_RS_END refreshes 
the RegionServers. As a result, the getter can return DOWNGRADE_ACTIVE while a 
RegionServer still has STANDBY in its local cache.
   
   The additional wait is intended to cover this window before verify() sends 
reads to the RegionServer. I hope this clarifies the reason for the change.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to