| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Review requested:
|
Sorry, something went wrong.
There was a problem hiding this comment.
Can you please add a test for HTTPs too?
Sorry, something went wrong.
|
@nodejs/tsc this is a notable change that we should land before v18 goes LTS. We have seen quite a few reports of bugs due to improper configuration of IPv6, making #41625 a necessity. For example, Docker on Mac only exposes ports on the IPv4 address, making all connections to localhost fail. |
Sorry, something went wrong.
|
No comment (yet at least) one way or the other on the implementation, but +1000 to implementing happy eyeballs in Node.js. |
Sorry, something went wrong.
|
The two new tests fail for me (Linux x64) and also in GitHub actions. Details=== release test-http-happy-eyeballs ===
Path: parallel/test-http-happy-eyeballs
Error: --- stderr ---
node:events:491
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::33167
at Server.setupListenHandle [as _listen2] (node:net:1649:16)
at listenInCluster (node:net:1697:12)
at doListen (node:net:1846:7)
at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1676:8)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '::',
port: 33167
}
Node.js v19.0.0-pre
Command: out/Release/node /home/runner/work/node/node/test/parallel/test-http-happy-eyeballs.js
=== release test-net-happy-eyeballs ===
Path: parallel/test-net-happy-eyeballs
Error: --- stderr ---
node:events:491
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::37301
at Server.setupListenHandle [as _listen2] (node:net:1649:16)
at listenInCluster (node:net:1697:12)
at doListen (node:net:1846:7)
at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1676:8)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '::',
port: 37301
}
Node.js v19.0.0-pre
Command: out/Release/node /home/runner/work/node/node/test/parallel/test-net-happy-eyeballs.js
===
=== 2 tests failed
===
|
Sorry, something went wrong.
|
Acknowledged! |
Sorry, something went wrong.
Same goes for me as well. |
Sorry, something went wrong.
There was a problem hiding this comment.
Can we add test for dnsPromises.Resolver as well?
Sorry, something went wrong.
@nodejs/tsc Two comments.
|
Sorry, something went wrong.
|
I'm going to rebase and force push to at least get the tarball job working. |
Sorry, something went wrong.
My case is that we should make it enabled by default. This causes so many headaches to newbie developers that know little of IPv4 vs IPv6 and why localhost is two IPs. We should make this change before v18 goes LTS. |
Sorry, something went wrong.
|
|
||
| [IPC]: #ipc-support | ||
| [Identifying paths for IPC connections]: #identifying-paths-for-ipc-connections | ||
| [RFC 8305]: https://www.rfc-editor.org/rfc/rfc8305.txt |
|
|
||
| [IPC]: #ipc-support | ||
| [Identifying paths for IPC connections]: #identifying-paths-for-ipc-connections | ||
| [RFC 8305]: https://www.rfc-editor.org/rfc/rfc8305.txt |
There was a problem hiding this comment.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
This PR loosely implements section 5 of RFC 8305 (Happy Eyeballs algorithm).
A new option autoSelectFamily is added to net.connect.
When set to a positive number (or true), the lookup phase will keep all records by setting all=true.
A connection attempt will be tried to all AAAA and A records (alternating families), in sequence, giving each connection autoSelectFamily milliseconds to be established.
Errors are raised only if no connection succeeded.
Fixes #41625.