GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — deps: upgrade to libuv 1.44.2 by lpinca · Pull Request #42340 · nodejs/node

Conversation

@lpinca

@lpinca lpinca commented Mar 15, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Notable changes:

  • Build regression fixes for various platform updates
    (bsd: ensure mutex is initialized libuv/libuv#3428,
    V1.x fix recvmmsg on musl libc libuv/libuv#3419,
    unix: don't allow too small thread stack size libuv/libuv#3423,
    darwin: translate EPROTOTYPE to ECONNRESET libuv/libuv#3413,
    build: rename CFLAGS to AM_CFLAGS libuv/libuv#3431)
  • Support for GNU/Hurd (Unbreak build on GNU/Hurd libuv/libuv#3450)
  • Release tool improvements
    (add autotools tarball support libuv/libuv-release-tool#13)
  • Better performing rw locks on Win32 (The Windows SRWLock primitive can be used for rw locking instead of a custom CRITICAL_SECTION+Semaphore implementation #3382 libuv/libuv#3383)
  • Support for posix_spawn API (posix spawn, take 2 libuv/libuv#3257)
  • Fix regression on OpenBSD (process: remove OpenBSD from kevent list libuv/libuv#3506)
  • Add uv_available_parallelism() (unix,win: add uv_available_parallelism() libuv/libuv#3499)
  • Don't use thread-unsafe strtok() (macos: don't use thread-unsafe strtok() libuv/libuv#3524)
  • Fix hang after NOTE_EXIT (process: fix hang after NOTE_EXIT libuv/libuv#3521)
  • Better align order-of-events behavior between platforms
    (loop: better align order-of-events behavior between platforms libuv/libuv#3598)
  • Fix fs event not fired if the watched file is moved/removed/recreated
    (zos: fix fs event not fired if the watched file is moved/removed/recreated libuv/libuv#3540)
  • Fix pipe resource leak if closed during connect (and other bugs)
    (win: Fix pipe resource leak if closed during connect (and other bugs) libuv/libuv#3611)
  • Don't error when killing a zombie process
    (zos: don't error when killing a zombie process libuv/libuv#3625)
  • Avoid posix_spawnp() cwd bug (macos: avoid posix_spawnp() cwd bug libuv/libuv#3597)
  • Skip EVFILT_PROC events when invalidating events for an fd
    (kqueue: skip EVFILT_PROC events when invalidating events for an fd. libuv/libuv#3629)

Fixes: #42290

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

bricss reacted with thumbs up emoji bricss reacted with hooray emoji bricss and juanarbol reacted with heart emoji bricss reacted with rocket emoji
All reactions
  • 👍 1 reaction
  • 🎉 1 reaction
  • ❤️ 2 reactions
  • 🚀 1 reaction
@nodejs-github-bot nodejs-github-bot added libuv Issues and PRs related to the libuv dependency or the uv binding. needs-ci PRs that need a full CI run. labels Mar 15, 2022
@lpinca lpinca added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Mar 15, 2022
targos
targos approved these changes Mar 15, 2022
View reviewed changes

@targos targos left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

RSLGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Mar 15, 2022
@nodejs-github-bot

nodejs-github-bot commented Mar 15, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/43042/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lpinca
lpinca force-pushed the update/libuv branch from 5cbea7e to ca34763 Compare March 15, 2022 14:49
@lpinca lpinca added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Mar 15, 2022
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Mar 15, 2022
@nodejs-github-bot

nodejs-github-bot commented Mar 15, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/43052/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Mar 15, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/43055/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lpinca

lpinca commented Mar 15, 2022

Copy link
Copy Markdown
Member Author

There seem to be some relevant test failures on Windows.

cc: @nodejs/platform-windows @nodejs/fs

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Mar 15, 2022

Copy link
Copy Markdown
Member

May be libuv/libuv#3193 ?
@RaisinTen

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos targos closed this Mar 15, 2022
@targos targos reopened this Mar 15, 2022
@lpinca

lpinca commented Mar 15, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

We could fix the EPERM -> EACCES stuff in the tests but I think it would be semver-major.

Also, there are two other different failures on Windows that need to be investigated:

  1. node/test/parallel/test-os.js

    Line 215 in d4d0b09

    assert.strictEqual(pwd.uid, -1);
    pwd.uid is 4294967295 instead of -1. The culprit here seems to be libuv/libuv@f3e0bff.
  2. node/test/parallel/test-timers-immediate-unref-nested-once.js

    Line 8 in d4d0b09

    setImmediate(common.mustNotCall()).unref();
    The callback is called when it should not. The offending commit is libuv/libuv@939a056.

cc: @nodejs/libuv @vtjnash

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Mar 16, 2022
CI Reliability 2022-03-16 nodejs/reliability#222
Open
29 tasks
@RaisinTen

RaisinTen commented Mar 16, 2022

Copy link
Copy Markdown
Member

Yes, I can confirm that libuv/libuv#3193 caused the EPERM and EACCES mismatches and yes, this change should be labelled as semver-major because other modules like https://github.com/isaacs/rimraf also depends on the error code being EPERM instead of EACCES.

cc @isaacs

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lpinca lpinca added the semver-major PRs that contain breaking changes and should be released in the next major version. label Mar 16, 2022
@lpinca
lpinca force-pushed the update/libuv branch 3 times, most recently from 3180604 to 621ae7f Compare March 16, 2022 10:36
@richardlau

richardlau commented Mar 16, 2022

Copy link
Copy Markdown
Member

Yes, I can confirm that libuv/libuv#3193 caused the EPERM and EACCES mismatches and yes, this change should be labelled as semver-major because other modules like https://github.com/isaacs/rimraf also depends on the error code being EPERM instead of EACCES.

This means we will be unable to update libuv in LTS to this or subsequent versions.

lpinca, bricss, and juanarbol reacted with thumbs up emoji
All reactions
  • 👍 3 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lpinca

lpinca commented Mar 16, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

This patch

diff --git a/deps/uv/src/win/core.c b/deps/uv/src/win/core.c
index c08dedc47c..cfd52e5148 100644
--- a/deps/uv/src/win/core.c
+++ b/deps/uv/src/win/core.c
@@ -401,7 +401,6 @@ int uv_loop_fork(uv_loop_t* loop) {
 static int uv__loop_alive(const uv_loop_t* loop) {
   return uv__has_active_handles(loop) ||
          uv__has_active_reqs(loop) ||
-         loop->pending_reqs_tail != NULL ||
          loop->endgame_handles != NULL;
 }

fixes the third issue (point 2 in my previous comment) but I'm not sure if it hides another issue/bug.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@RaisinTen

RaisinTen commented Mar 16, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

This means we will be unable to update libuv in LTS to this or subsequent versions.

@richardlau is that something we are okay with or should we revert the change in the libuv repo?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Mar 17, 2022
CI Reliability 2022-03-17 nodejs/reliability#223
Open
38 tasks
@aduh95

aduh95 commented Mar 17, 2022

Copy link
Copy Markdown
Contributor

621ae7f could land on a separate PR, as it is not semver-major.

node/doc/contributing/collaborator-guide.md

Lines 513 to 514 in a199387

All commits should be self-contained, meaning every commit should pass all
tests. This makes it much easier when bisecting to find a breaking change.

We would need to either squash the commits when merging, or add a first commit that disables the test that the update break, or make an exception (see #42356 (comment)).

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@richardlau

richardlau commented Mar 17, 2022

Copy link
Copy Markdown
Member

This means we will be unable to update libuv in LTS to this or subsequent versions.

@richardlau is that something we are okay with or should we revert the change in the libuv repo?

On the one hand if we say "we'll never update libuv again in any of the existing LTS releases" then that's less work for releasers but I don't feel comfortable in making that statement. We could float patches but that's not particularly friendly to others who build their own packages of Node.js (Linux distros, homebrew etc) who dynamically link against a shared libuv library.

My question is, given the change would cause ecosystem breakage, is it worth it?

lpinca and juanarbol reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lpinca

lpinca commented Mar 17, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

621ae7f could land on a separate PR, as it is not semver-major.

It could, but it does not make sense without the libuv update.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Mar 17, 2022

Copy link
Copy Markdown
Member

My question is, given the change would cause ecosystem breakage, is it worth it?

If it breaks things as popular as rimraf, I'd say it's not.

RaisinTen reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lpinca

lpinca commented Nov 2, 2022

Copy link
Copy Markdown
Member Author

Please approve again. I will run CI again tomorrow when the embargo ends. Thanks.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

aduh95
aduh95 approved these changes Nov 2, 2022
View reviewed changes
@lpinca lpinca added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Nov 4, 2022
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Nov 4, 2022
@nodejs-github-bot

nodejs-github-bot commented Nov 4, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/47685/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

lpinca added 5 commits November 5, 2022 06:45
@lpinca
os: convert uid and gid to 32-bit signed integers
c370e51
Make `os.userInfo()` convert the `uid` and `gid` fields to 32-bit signed
integers on Windows.

Refs: libuv/libuv@f3e0bffcb14
@lpinca
test: fix test-socket-write-after-fin-error
c55e7a7
The `'error'` event is not emitted because the socket is already
destroyed when `socket.write()` is called. Use the `socket.write()`
callback instead.

Refs: nodejs#42340 (comment)
@lpinca
lib: use process.nextTick() instead of setImmediate()
ef9d9e4
Do not delay the call to `stream.end()` too much.

Refs: nodejs#42340 (comment)
@lpinca
test: defer invocation checks
ae335d2
Do not immediately check the `tcpserver` hook invocations when it
closes. Do it in the next iteration of the event loop.

Refs: nodejs#42340 (comment)
@lpinca
deps: upgrade to libuv 1.44.2
55d74ae
Notable changes:

- Build regression fixes for various platform updates
  (libuv/libuv#3428,
  libuv/libuv#3419,
  libuv/libuv#3423,
  libuv/libuv#3413,
  libuv/libuv#3431)
- Support for GNU/Hurd (libuv/libuv#3450)
- Release tool improvements
  (libuv/libuv-release-tool#13)
- Better performing rw locks on Win32 (libuv/libuv#3383)
- Support for posix_spawn API (libuv/libuv#3257)
- Fix regression on OpenBSD (libuv/libuv#3506)
- Add uv_available_parallelism() (libuv/libuv#3499)
- Don't use thread-unsafe strtok() (libuv/libuv#3524)
- Fix hang after NOTE_EXIT (libuv/libuv#3521)
- Better align order-of-events behavior between platforms
  (libuv/libuv#3598)
- Fix fs event not fired if the watched file is moved/removed/recreated
  (libuv/libuv#3540)
- Fix pipe resource leak if closed during connect (and other bugs)
  (libuv/libuv#3611)
- Don't error when killing a zombie process
  (libuv/libuv#3625)
- Avoid posix_spawnp() cwd bug (libuv/libuv#3597)
- Skip EVFILT_PROC events when invalidating events for an fd
  (libuv/libuv#3629)

Fixes: nodejs#42290
@lpinca
lpinca force-pushed the update/libuv branch from f18f2e4 to 55d74ae Compare November 5, 2022 05:45
@nodejs-github-bot

nodejs-github-bot commented Nov 5, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/47707/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Nov 5, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/47715/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Nov 5, 2022

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/47716/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

lpinca added a commit that referenced this pull request Nov 5, 2022
@lpinca
os: convert uid and gid to 32-bit signed integers
58431c0
Make `os.userInfo()` convert the `uid` and `gid` fields to 32-bit signed
integers on Windows.

PR-URL: #42340
Refs: libuv/libuv@f3e0bffcb14
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
lpinca added a commit that referenced this pull request Nov 5, 2022
@lpinca
test: fix test-socket-write-after-fin-error
60de147
The `'error'` event is not emitted because the socket is already
destroyed when `socket.write()` is called. Use the `socket.write()`
callback instead.

PR-URL: #42340
Refs: #42340 (comment)
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
lpinca added a commit that referenced this pull request Nov 5, 2022
@lpinca
lib: use process.nextTick() instead of setImmediate()
8dd635e
Do not delay the call to `stream.end()` too much.

PR-URL: #42340
Refs: #42340 (comment)
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
lpinca added a commit that referenced this pull request Nov 5, 2022
@lpinca
test: defer invocation checks
65ec9f3
Do not immediately check the `tcpserver` hook invocations when it
closes. Do it in the next iteration of the event loop.

PR-URL: #42340
Refs: #42340 (comment)
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
lpinca added a commit that referenced this pull request Nov 5, 2022
@lpinca
deps: upgrade to libuv 1.44.2
28bf031
Notable changes:

- Build regression fixes for various platform updates
  (libuv/libuv#3428,
  libuv/libuv#3419,
  libuv/libuv#3423,
  libuv/libuv#3413,
  libuv/libuv#3431)
- Support for GNU/Hurd (libuv/libuv#3450)
- Release tool improvements
  (libuv/libuv-release-tool#13)
- Better performing rw locks on Win32 (libuv/libuv#3383)
- Support for posix_spawn API (libuv/libuv#3257)
- Fix regression on OpenBSD (libuv/libuv#3506)
- Add uv_available_parallelism() (libuv/libuv#3499)
- Don't use thread-unsafe strtok() (libuv/libuv#3524)
- Fix hang after NOTE_EXIT (libuv/libuv#3521)
- Better align order-of-events behavior between platforms
  (libuv/libuv#3598)
- Fix fs event not fired if the watched file is moved/removed/recreated
  (libuv/libuv#3540)
- Fix pipe resource leak if closed during connect (and other bugs)
  (libuv/libuv#3611)
- Don't error when killing a zombie process
  (libuv/libuv#3625)
- Avoid posix_spawnp() cwd bug (libuv/libuv#3597)
- Skip EVFILT_PROC events when invalidating events for an fd
  (libuv/libuv#3629)

Fixes: #42290
PR-URL: #42340
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
@lpinca

lpinca commented Nov 5, 2022

Copy link
Copy Markdown
Member Author

Landed in 3a81b47...28bf031.

RaisinTen and santigimeno reacted with hooray emoji
All reactions
  • 🎉 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@santigimeno santigimeno mentioned this pull request Nov 5, 2022
os.uptime returns float instead of integer #41636
Closed
This was referenced Nov 6, 2022
CI Reliability 2022-11-06 nodejs/reliability#420
Open
CI Reliability 2022-11-07 nodejs/reliability#421
Open
@facutuesca facutuesca mentioned this pull request Nov 7, 2022
Add automation for updating libuv dependency #45362
Merged
This was referenced Nov 8, 2022
CI Reliability 2022-11-08 nodejs/reliability#422
Open
CI Reliability 2022-11-09 nodejs/reliability#423
Open
@RafaelGSS RafaelGSS mentioned this pull request Nov 10, 2022
v19.1.0 proposal #45269
Merged
@danielleadams danielleadams mentioned this pull request Dec 30, 2022
v18.13.0 release proposal #46025
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@anonrig anonrig anonrig approved these changes
@aduh95 aduh95 aduh95 approved these changes
@juanarbol juanarbol juanarbol approved these changes
@RaisinTen RaisinTen RaisinTen approved these changes
+1 more reviewer
@targos targos targos approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

libuv Issues and PRs related to the libuv dependency or the uv binding. needs-ci PRs that need a full CI run.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Update to libuv v1.44.1

Uh oh!

There was an error while loading. Please reload this page.

15 participants

@lpinca @nodejs-github-bot @targos @RaisinTen @richardlau @aduh95 @santigimeno @bnoordhuis @vtjnash @thunder-coding @V-for-Vasili @wa-Nadoo @bricss @anonrig @juanarbol
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.