When clients attempts to join it loops through:
while(!joined){
fetch the initial members
determine coordinator
send join request to coordinator
wait for join response (timeout)
if(joinok)
joined = installView
}
Unlucky timing of join response arrival can delay successful view installation and lead to unforeseen problems. If waiting for join response timeouts then joining thread repeats a loop and sends a blocking request to fetch initial members again. If response arrives while joining thread is fetching for the initial members then joining thread has to wait for fetching of the initial members to return in order to proceed with view installation.
Fix for this issue should ensure that If successful join response arrives then joining thread should be interrupted and proceed with view installation immediately.
- relates to
-
JGRP-625 Deprecate GMS.join_retry_timeout
- Resolved