|
|
|
@ -315,11 +315,14 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, |
|
|
|
|
&p->checking_connectivity, &p->connectivity_changed); |
|
|
|
|
break; |
|
|
|
|
case GRPC_CHANNEL_TRANSIENT_FAILURE: |
|
|
|
|
grpc_connectivity_state_set(exec_ctx, &p->state_tracker, |
|
|
|
|
GRPC_CHANNEL_TRANSIENT_FAILURE, |
|
|
|
|
"connecting_transient_failure"); |
|
|
|
|
p->checking_subchannel = |
|
|
|
|
(p->checking_subchannel + 1) % p->num_subchannels; |
|
|
|
|
if (p->checking_subchannel == 0) { |
|
|
|
|
/* only trigger transient failure when we've tried all alternatives */ |
|
|
|
|
grpc_connectivity_state_set(exec_ctx, &p->state_tracker, |
|
|
|
|
GRPC_CHANNEL_TRANSIENT_FAILURE, |
|
|
|
|
"connecting_transient_failure"); |
|
|
|
|
} |
|
|
|
|
p->checking_connectivity = grpc_subchannel_check_connectivity( |
|
|
|
|
p->subchannels[p->checking_subchannel]); |
|
|
|
|
if (p->checking_connectivity == GRPC_CHANNEL_TRANSIENT_FAILURE) { |
|
|
|
|