The test "js client -> native server client should not wait for ready by default" fails consistently on my computer
- Dominant language
- TypeScript
- Stars
- 4.8k
- Forks
- 716
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 10
Description
The request fails with a DEADLINE_EXCEEDED error instead of the expected UNAVAILABLE error. The trace logs appear to show that the name resolution step, which is expected to fail, takes time to fail proportional to the number of previous DNS queries in the same process.
`uname -a`: Linux DESKTOP-OKC3QBQ 4.19.128-microsoft-standard #1 SMP Tue Jun 23 12:58:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Example trace log with 4 previous DNS queries:
```
2021-02-08T20:44:27.499Z | subchannel | 127.0.0.1:40203 connection closed with error Session closed with error code 8
2021-02-08T20:44:27.499Z | call_stream | [5] ended with status: code=14 details="Connection dropped"
2021-02-08T20:44:27.499Z | subchannel_refcount | 127.0.0.1:40203 callRefcount 2 -> 1
2021-02-08T20:44:27.499Z | resolving_load_balancer | dns:foo.test.google.com:50051 IDLE -> IDLE
2021-02-08T20:44:27.499Z | connectivity_state | dns:foo.test.google.com:50051 IDLE -> IDLE
2021-02-08T20:44:27.499Z | dns_resolver | Resolver constructed for target dns:foo.test.google.com:50051
2021-02-08T20:44:27.500Z | channel | dns:foo.test.google.com:50051 createCall [8] method="/TestService/Unary", deadline=Mon Feb 08 2021 12:44:37 GMT-0800 (Pacific Standard Time)
2021-02-08T20:44:27.500Z | call_stream | [8] Sending metadata
##### DNS RESOLUTION STARTS #####
2021-02-08T20:44:27.500Z | dns_resolver | Resolution update requested for target dns:foo.test.google.com:50051
2021-02-08T20:44:27.500Z | resolving_load_balancer | dns:foo.test.google.com:50051 IDLE -> CONNECTING
2021-02-08T20:44:27.500Z | connectivity_state | dns:foo.test.google.com:50051 IDLE -> CONNECTING
2021-02-08T20:44:27.500Z | resolving_load_balancer | dns:foo.test.google.com:50051 CONNECTING -> CONNECTING
2021-02-08T20:44:27.500Z | connectivity_state | dns:foo.test.google.com:50051 CONNECTING -> CONNECTING
2021-02-08T20:44:27.500Z | channel | callRefTimer.ref | configSelectionQueue.length=1 pickQueue.length=0
2021-02-08T20:44:27.500Z | call_stream | [8] write() called with message of length 0
2021-02-08T20:44:27.501Z | call_stream | [8] end() called
2021-02-08T20:44:27.501Z | call_stream | [8] deferring writing data chunk of length 5
##### DNS RESOLUTION FINISHES #####
2021-02-08T20:44:32.563Z | dns_resolver | Resolution error for target dns:foo.test.google.com:50051: getaddrinfo ENOTFOUND foo.test.google.com
2021-02-08T20:44:32.564Z | resolving_load_balancer | dns:foo.test.google.com:50051 CONNECTING -> TRANSIENT_FAILURE
2021-02-08T20:44:32.564Z | channel | callRefTimer.unref | configSelectionQueue.length=1 pickQueue.length=0
2021-02-08T20:44:32.564Z | connectivity_state | dns:foo.test.google.com:50051 CONNECTING -> TRANSIENT_FAILURE
2021-02-08T20:44:32.564Z | channel | Name resolution failed for target dns:foo.test.google.com:50051 with calls queued for config selection
2021-02-08T20:44:32.564Z | call_stream | [8] cancelWithStatus code: 14 details: "Name resolution failed for target dns:foo.test.google.com:50051"
2021-02-08T20:44:32.564Z | call_stream | [8] ended with status: code=14 details="Name resolution failed for target dns:foo.test.google.com:50051"
```
Contributor guide
Assessment
This issue has not been assessed yet.