-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Open
Labels
Area: Resolvers/BalancersIncludes LB policy & NR APIs, resolver/balancer/picker wrappers, LB policy impls and utilities.Includes LB policy & NR APIs, resolver/balancer/picker wrappers, LB policy impls and utilities.P2Type: Internal CleanupRefactors, etcRefactors, etc
Description
Presently, addrConn
is requesting a re-resolution before reporting TRANSIENT_FAILURE
once all the addresses have been tried:
Lines 1256 to 1266 in 3cb3342
if err := ac.tryAllAddrs(acCtx, addrs, connectDeadline); err != nil { | |
ac.cc.resolveNow(resolver.ResolveNowOptions{}) | |
ac.mu.Lock() | |
if acCtx.Err() != nil { | |
// addrConn was torn down. | |
ac.mu.Unlock() | |
return | |
} | |
// After exhausting all addresses, the addrConn enters | |
// TRANSIENT_FAILURE. | |
ac.updateConnectivityState(connectivity.TransientFailure, err) |
With the dualstack changes for moving pickfirst logic from the subchannel to the new pickfirst
LB policy, there will be one address per subchannel and the re-resolution should happen only once all the subchannels have reported TRANSIENT_FAILURE
once. Subsequent re-resolutions should happen after seeing |subchannels|
TRANSIENT_FAILURE
s.
stek29
Metadata
Metadata
Assignees
Labels
Area: Resolvers/BalancersIncludes LB policy & NR APIs, resolver/balancer/picker wrappers, LB policy impls and utilities.Includes LB policy & NR APIs, resolver/balancer/picker wrappers, LB policy impls and utilities.P2Type: Internal CleanupRefactors, etcRefactors, etc