Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

loop: better align order-of-events behavior between platforms #3598

Merged
merged 1 commit into from May 13, 2022

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Apr 15, 2022

Previously, Windows would always defer event processing to the loop
after they were received. This could cause confusion for users who were
using prepare and idle callbacks, as seen from this bug in nodejs1 and
this discussion in libuv2, and even some discrepancies in the libuv
tests too3.

So rather than declare those usages to be wrong, we change libuv to meet
those users expectations.

Replaces: #3585

Footnotes

  1. https://github.com/nodejs/node/pull/42340

  2. https://github.com/libuv/libuv/discussions/3550

  3. See change to test-spawn.c in this PR

Previously, Windows would always defer event processing to the loop
after they were received. This could cause confusion for users who were
using prepare and idle callbacks, as seen from this bug in nodejs[^1] and
this discussion in libuv[^2], and even some discrepancies in the libuv
tests too[^3].

[^1]: nodejs/node#42340
[^2]: libuv#3550
[^3]: See change to test-spawn.c in this PR

So rather than declare those usages to be wrong, we change libuv to meet
those users expectations.

Replaces: libuv#3585
@vtjnash vtjnash requested a review from bnoordhuis April 15, 2022 18:32
@vtjnash
Copy link
Member Author

vtjnash commented Apr 19, 2022

@vtjnash vtjnash mentioned this pull request Apr 19, 2022
11 tasks
@bnoordhuis
Copy link
Member

This patch should hopefully fix the node build errors:

diff --git a/deps/uv/uv.gyp b/deps/uv/uv.gyp
index 093f611fb6f..a3e9819a7e0 100644
--- a/deps/uv/uv.gyp
+++ b/deps/uv/uv.gyp
@@ -78,6 +78,8 @@
         'src/random.c',
         'src/strscpy.c',
         'src/strscpy.h',
+        'src/strtok.c',
+        'src/strtok.h',
         'src/threadpool.c',
         'src/timer.c',
         'src/uv-data-getter-setters.c',

bnoordhuis added a commit to bnoordhuis/io.js that referenced this pull request Apr 27, 2022
@bnoordhuis
Copy link
Member

https://ci.nodejs.org/view/libuv/job/libuv-in-node/212/ - this PR with gyp patch applied

@bnoordhuis
Copy link
Member

The shared library build timed out (not our fault) and the osx-arm failure is known flake nodejs/node#42741 but the Windows failures might be related.

@vtjnash
Copy link
Member Author

vtjnash commented Apr 27, 2022

test.parallel/test-http-client-abort-unix-socket timeout

this seems somewhat concerning and needs to be investigated

test.async-hooks/test-tcpwrap Error Detailsfail (1) Stack Tracenode:assert:399 throw err; ^ AssertionError [ERR_ASSERTION]: Checking invocations at stage "tcpserver when server is closed": Never called "destroy", but expected 1 invocation(s). at checkHook (C:\workspace\node-test-binary-windows-js-suites\node\test\async-hooks\hook-checks.js:45:7) at Array.forEach () at checkInvocations (C:\workspace\node-test-binary-windows-js-suites\node\test\async-hooks\hook-checks.js:28:62) at Server.onserverClosed (C:\workspace\node-test-binary-windows-js-suites\node\test\async-hooks\test-tcpwrap.js:131:3) at Server.onserverClosed (C:\workspace\node-test-binary-windows-js-suites\node\test\common\index.js:438:15) at Object.onceWrapper (node:events:641:28) at Server.emit (node:events:527:28) at emitCloseNT (node:net:1736:8) at process.processTicksAndRejections (node:internal/process/task_queues:81:21) { generatedMessage: false, code: 'ERR_ASSERTION', actual: false, expected: true, operator: '==' } Node.js v19.0.0-pre

From a quick glance, this looks like it might be calling the 'destroy' handle with a setImmediate callback, and somehow the timing of that is changing here. I am not sure yet whether that is a bad assumption with nodejs or an issue being caused here.

The rest look likely to be nodejs bugs (some already known and in the process of being fixed).

test.pummel/test-regress-GH-892

This looks fairly suspect, since it seems that the client code is doing a big upload, then is depending on res.resume() to keep the loop alive after that finishes and gets EOF, while the server code expects to get EOF then write a final message to the socket. This seems incompatible with the normal nodejs behavior of destroying the stream (halfOpen: false) as soon as it sees EOF. Particularly also for TLS, which used to mandate the stream be destroyed in this case (v1.2 and earlier). That part of the standard was fixed in v1.3, but nodejs still mostly follows the old behavior specified there in my past observations.

@vtjnash
Copy link
Member Author

vtjnash commented Apr 28, 2022

The TCPWRAP failure seems related to nodejs/node#17117, which appears to define that uv_check_t handles must be run in some particular way and order relative to some other events, such that the callback from that immediate_check_handle_ in async_wrap gets dispatched prior to the onserverClosed event getting called from the close handler. I am still not sure what is causing that to change though. @addaleax seems to be the original author there?

vtjnash added a commit that referenced this pull request May 13, 2022
If `uv_close` was called while a connect was pending, we would fail to
release the resources for the connection, since we had not yet set the
type of the struct.

Fix a thread data-race on slow connect path code: only permitted to
write to `req` on threads, as anything else causes data race
corruption.

There seemed be a small variety of other resource management bugs in
edge cases, which turned out to make this a lot larger than initially
expected.

Refs: #3598 (comment)
@vtjnash vtjnash merged commit ee3718d into libuv:v1.x May 13, 2022
@vtjnash vtjnash deleted the jn/win-pending branch May 13, 2022 10:41
JeffroMF pushed a commit to JeffroMF/libuv that referenced this pull request May 16, 2022
If `uv_close` was called while a connect was pending, we would fail to
release the resources for the connection, since we had not yet set the
type of the struct.

Fix a thread data-race on slow connect path code: only permitted to
write to `req` on threads, as anything else causes data race
corruption.

There seemed be a small variety of other resource management bugs in
edge cases, which turned out to make this a lot larger than initially
expected.

Refs: libuv#3598 (comment)
JeffroMF pushed a commit to JeffroMF/libuv that referenced this pull request May 16, 2022
…3598)

Previously, Windows would always defer event processing to the loop
after they were received. This could cause confusion for users who were
using prepare and idle callbacks, as seen from this bug in nodejs[^1] and
this discussion in libuv[^2], and even some discrepancies in the libuv
tests too[^3].

[^1]: nodejs/node#42340
[^2]: libuv#3550
[^3]: See change to test-spawn.c in this PR

So rather than declare those usages to be wrong, we change libuv to meet
those users expectations.

Replaces: libuv#3585
lpinca added a commit to lpinca/node that referenced this pull request Jul 12, 2022
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 added a commit to lpinca/node that referenced this pull request Jul 23, 2022
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 added a commit to lpinca/node that referenced this pull request Sep 28, 2022
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 added a commit to lpinca/node that referenced this pull request Sep 29, 2022
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 added a commit to lpinca/node that referenced this pull request Oct 25, 2022
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 added a commit to lpinca/node that referenced this pull request Oct 26, 2022
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 added a commit to lpinca/node that referenced this pull request Oct 28, 2022
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 added a commit to lpinca/node that referenced this pull request Nov 2, 2022
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 added a commit to lpinca/node that referenced this pull request Nov 5, 2022
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 added a commit to nodejs/node that referenced this pull request Nov 5, 2022
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 <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
lucshi pushed a commit to lucshi/node that referenced this pull request Nov 9, 2022
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
PR-URL: nodejs#42340
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
RafaelGSS pushed a commit to nodejs/node that referenced this pull request Nov 10, 2022
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 <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
danielleadams pushed a commit to nodejs/node that referenced this pull request Dec 30, 2022
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 <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
danielleadams pushed a commit to nodejs/node that referenced this pull request Dec 30, 2022
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 <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
danielleadams pushed a commit to nodejs/node that referenced this pull request Jan 3, 2023
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 <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants