-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Closed as duplicate of#6472
Closed as duplicate of#6472
Copy link
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_FAILUREs.
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