Skip to content

Conversation

@ShogunPanda
Copy link
Contributor

@ShogunPandaShogunPanda commented Dec 7, 2022

This PR continues #44731 by adding the following new APIs:

  • net.Socket.autoSelectFamilyAttemptedAddresses: It contains a list of all the addresses that were attempted when using the Happy Eyeballs algorithm.
  • net.setDefaultAutoSelectFamily and net.getDefaultAutoSelectFamily: Sets or gets the default for autoSelectFamily for net.connect. This can also be enabled by the command line option --enable-network-family-autoselection.

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/net

@nodejs-github-botnodejs-github-bot added needs-ci PRs that need a full CI run. net Issues and PRs related to the net subsystem. labels Dec 7, 2022
@ShogunPandaShogunPandaforce-pushed the autoselectfamily-improvements branch 3 times, most recently from 58f423b to 9fdf538CompareDecember 7, 2022 20:39
@addaleax
Copy link
Member

Should this be a command line flag? Those are inherited by Workers by default, for example.

@mcollina
Copy link
Member

I think adding a command line flag for this would be useful too.

@ShogunPandaShogunPandaforce-pushed the autoselectfamily-improvements branch from 9fdf538 to 2efd797CompareDecember 8, 2022 11:10
@ShogunPanda
Copy link
ContributorAuthor

@mcollina@addaleax CLI option added!

Copy link
Member

@mcollinamcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mcollinamcollina added notable-change PRs with changes that should be highlighted in changelogs. request-ci Add this label to start a Jenkins CI on a PR. labels Dec 13, 2022
@github-actionsgithub-actionsbot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 13, 2022
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@ShogunPandaShogunPandaforce-pushed the autoselectfamily-improvements branch from 2efd797 to 0cc09d7CompareDecember 23, 2022 08:38
@ShogunPandaShogunPanda added the request-ci Add this label to start a Jenkins CI on a PR. label Dec 23, 2022
@github-actionsgithub-actionsbot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 23, 2022
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@treysis
Copy link
Contributor

This depends on #45057 to land cleanly in v18.x

Sooo, since #45057 and its 18.x backport #45994 (via 0d5e324) have made it into 18, can also this PR make it into 18.x?

juanarbol pushed a commit to juanarbol/node that referenced this pull request Jun 21, 2023
juanarbol pushed a commit to juanarbol/node that referenced this pull request Jul 7, 2023
juanarbol pushed a commit to juanarbol/node that referenced this pull request Jul 13, 2023
juanarbol pushed a commit to juanarbol/node that referenced this pull request Jul 17, 2023
mhdawson pushed a commit to mhdawson/io.js that referenced this pull request Jul 26, 2023
mhdawson pushed a commit to mhdawson/io.js that referenced this pull request Aug 4, 2023
ruyadorno pushed a commit that referenced this pull request Aug 14, 2023
PR-URL: #45777 Backport-PR-URL: #49016 Reviewed-By: Matteo Collina <[email protected]>
ruyadorno added a commit that referenced this pull request Aug 17, 2023
Notable changes: net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 PR-URL: TODO
@ruyadornoruyadorno mentioned this pull request Aug 17, 2023
ruyadorno added a commit that referenced this pull request Aug 29, 2023
Notable changes: net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 1, 2023
Notable changes: net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 PR-URL: TODO
ruyadorno added a commit that referenced this pull request Sep 6, 2023
Notable changes: net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 8, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 10, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 10, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 11, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) #48596 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 11, 2023
Notable changes: build: * sync libuv header change (Jiawen Geng) #48078 crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 deps: * add missing thread-common.c in uv.gyp (Santiago Gimeno) #48078 * upgrade to libuv 1.46.0 (Santiago Gimeno) #48078 * upgrade to libuv 1.45.0 (Santiago Gimeno) #48078 doc: * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) #48596 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 12, 2023
Notable changes: build: * sync libuv header change (Jiawen Geng) #48078 crypto: * update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341 * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 deps: * add missing thread-common.c in uv.gyp (Santiago Gimeno) #48078 * upgrade to libuv 1.46.0 (Santiago Gimeno) #48078 * upgrade to libuv 1.45.0 (Santiago Gimeno) #48078 doc: * add atlowChemi to collaborators (atlowChemi) #48757 * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) #48596 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 13, 2023
Notable changes: build: * sync libuv header change (Jiawen Geng) #48078 crypto: * update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341 * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 deps: * add missing thread-common.c in uv.gyp (Santiago Gimeno) #48078 * upgrade to libuv 1.46.0 (Santiago Gimeno) #48078 * upgrade to libuv 1.45.0 (Santiago Gimeno) #48078 doc: * add atlowChemi to collaborators (atlowChemi) #48757 * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) #48596 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 17, 2023
Notable changes: build: * sync libuv header change (Jiawen Geng) #48078 crypto: * update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341 * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 deps: * add missing thread-common.c in uv.gyp (Santiago Gimeno) #48078 * upgrade to libuv 1.46.0 (Santiago Gimeno) #48078 * upgrade to libuv 1.45.0 (Santiago Gimeno) #48078 doc: * add atlowChemi to collaborators (atlowChemi) #48757 * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) #48596 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
ruyadorno added a commit that referenced this pull request Sep 18, 2023
Notable changes: build: * sync libuv header change (Jiawen Geng) #48078 crypto: * update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341 * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 deps: * add missing thread-common.c in uv.gyp (Santiago Gimeno) #48078 * upgrade to libuv 1.46.0 (Santiago Gimeno) #48078 * upgrade to libuv 1.45.0 (Santiago Gimeno) #48078 doc: * add atlowChemi to collaborators (atlowChemi) #48757 * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) #43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) #48596 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 net: * add autoSelectFamily global getter and setter (Paolo Insogna) #45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) #47885 PR-URL: #49220
alexfernandez pushed a commit to alexfernandez/node that referenced this pull request Nov 1, 2023
Notable changes: build: * sync libuv header change (Jiawen Geng) nodejs#48078 crypto: * update root certificates to NSS 3.93 (Node.js GitHub Bot) nodejs#49341 * update root certificates to NSS 3.90 (Node.js GitHub Bot) nodejs#48416 deps: * add missing thread-common.c in uv.gyp (Santiago Gimeno) nodejs#48078 * upgrade to libuv 1.46.0 (Santiago Gimeno) nodejs#48078 * upgrade to libuv 1.45.0 (Santiago Gimeno) nodejs#48078 doc: * add atlowChemi to collaborators (atlowChemi) nodejs#48757 * add vmoroz to collaborators (Vladimir Morozov) nodejs#48527 * add kvakil to collaborators (Keyhan Vakil) nodejs#48449 esm: * (SEMVER-MINOR) add `--import` flag (Moshe Atlow) nodejs#43942 events: * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) nodejs#48596 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) nodejs#48518 net: * add autoSelectFamily global getter and setter (Paolo Insogna) nodejs#45777 url: * (SEMVER-MINOR) add value argument to has and delete methods (Sankalp Shubham) nodejs#47885 PR-URL: nodejs#49220
@RafaelGSSRafaelGSS added the semver-minor PRs that contain new features and should be released in the next minor version. label Dec 26, 2023
undergroundwires added a commit to undergroundwires/privacy.sexy that referenced this pull request Mar 30, 2024
This commit upgrades Node.js version to v20.x in CI/CD environment. Previously used Node 18.x is moving towards end-of-life, with a planned date of 2025-04-30. In contrast, Node 20.x has been offering long-term support (LTS) since 2023-10-24. This makes Node 20.x a stable and recommended version for production environments. This commit also configures `actions/setup-node` with the `check-latest` flag to always use the latest Node 20.x version, keeping CI/CD setup up-to-date with minimal maintenance. Details: - actions/setup-node#165 - actions/setup-node#160 Using Node 20.x in CI/CD environments provides better compatibility with Electron v29.0 which moves to Node 20.x. Details: - electron/electron#40343 This upgrade improves network connection handling in CI/CD pipelines (where issues occur due to GitHub runners not supporting IPv6). Details: - actions/runner#3138 - actions/runner-images#668 - actions/runner#3213 - actions/runner-images#9540 Node 20.x adopts the Happy Eyeballs algorithm for improved IPv6 connectivity. - nodejs/node#40702 - nodejs/node#41625 - nodejs/node#44731 This mitigates issues like `UND_ERR_CONNECT_TIMEOUT` and localhost DNS resolution in CI/CD environments: Details: - nodejs/node#40537 - actions/runner#3213 - actions/runner-images#9540 Node 20 introduces `setDefaultAutoSelectFamily`, a global function from Node 19.4.0, enabling better IPv4 support, especially in environments with limited or problematic IPv6 support. Details: - nodejs/node#45777 Node 20.x defaults to the new `autoSelectFamily`, improving network connection reliability in GitHub runners lacking full IPv6 support. Details: - nodejs/node#46790
undergroundwires added a commit to undergroundwires/privacy.sexy that referenced this pull request Mar 30, 2024
This commit upgrades Node.js version to v20.x in CI/CD environment. Previously used Node 18.x is moving towards end-of-life, with a planned date of 2025-04-30. In contrast, Node 20.x has been offering long-term support (LTS) since 2023-10-24. This makes Node 20.x a stable and recommended version for production environments. This commit also configures `actions/setup-node` with the `check-latest` flag to always use the latest Node 20.x version, keeping CI/CD setup up-to-date with minimal maintenance. Details: - actions/setup-node#165 - actions/setup-node#160 Using Node 20.x in CI/CD environments provides better compatibility with Electron v29.0 which moves to Node 20.x. Details: - electron/electron#40343 This upgrade improves network connection handling in CI/CD pipelines (where issues occur due to GitHub runners not supporting IPv6). Details: - actions/runner#3138 - actions/runner-images#668 - actions/runner#3213 - actions/runner-images#9540 Node 20.x adopts the Happy Eyeballs algorithm for improved IPv6 connectivity. - nodejs/node#40702 - nodejs/node#41625 - nodejs/node#44731 This mitigates issues like `UND_ERR_CONNECT_TIMEOUT` and localhost DNS resolution in CI/CD environments: Details: - nodejs/node#40537 - actions/runner#3213 - actions/runner-images#9540 Node 20 introduces `setDefaultAutoSelectFamily`, a global function from Node 19.4.0, enabling better IPv4 support, especially in environments with limited or problematic IPv6 support. Details: - nodejs/node#45777 Node 20.x defaults to the new `autoSelectFamily`, improving network connection reliability in GitHub runners lacking full IPv6 support. Details: - nodejs/node#46790
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commit-queue-squashAdd this label to instruct the Commit Queue to squash all the PR commits into the first one.netIssues and PRs related to the net subsystem.notable-changePRs with changes that should be highlighted in changelogs.semver-minorPRs that contain new features and should be released in the next minor version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@ShogunPanda@nodejs-github-bot@addaleax@mcollina@juanarbol@treysis@cjihrig@ruyadorno@RafaelGSS