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]
