File tree Expand file tree Collapse file tree 1 file changed +17
-5
lines changed Expand file tree Collapse file tree 1 file changed +17
-5
lines changed Original file line number Diff line number Diff line change @@ -57,14 +57,26 @@ type nsLookupResolver struct {
5757
5858func (r * nsLookupResolver ) resolve () {
5959 r .mutex .Lock ()
60+ grpcEndpoints := generateNSAddresses (r .target .Endpoint ())
6061 defer r .mutex .Unlock ()
6162
62- grpcEndpoints := generateNSAddresses (r .target .Endpoint ())
6363 if len (grpcEndpoints ) == 0 {
64- msg := "resolver produced zero addresses"
65- resolverDebug (msg )
66- r .cc .ReportError (errors .New (msg ))
67- return
64+ // try 8 times over 2 seconds to get gRPC addresses as we may be in the middle of fail-over
65+ for i := 0 ; i < 8 ; i ++ {
66+ resolverDebug ("retrying NSLookup attempt" , i )
67+ time .Sleep (time .Duration (250 ) * time .Millisecond )
68+ grpcEndpoints = generateNSAddresses (r .target .Endpoint ())
69+ if len (grpcEndpoints ) != 0 {
70+ break
71+ }
72+ }
73+
74+ if len (grpcEndpoints ) == 0 {
75+ msg := "resolver produced zero addresses"
76+ resolverDebug (msg )
77+ r .cc .ReportError (errors .New (msg ))
78+ return
79+ }
6880 }
6981
7082 addresses := make ([]resolver.Address , len (grpcEndpoints ))
You can’t perform that action at this time.
0 commit comments