0c1fa696 | 12-Jul-2022 |
Jameson Nash |
2022.07.12, Version 1.44.2 (Stable) Changes since version 1.44.1: * Add SHA to ChangeLog (Jameson Nash) * aix, ibmi: handle server hang when remote sends TCP RST (V-for-Vas
2022.07.12, Version 1.44.2 (Stable) Changes since version 1.44.1: * Add SHA to ChangeLog (Jameson Nash) * aix, ibmi: handle server hang when remote sends TCP RST (V-for-Vasili) * build: make CI a bit noisier (Jameson Nash) * process: reset the signal mask if the fork fails (Jameson Nash) * zos: implement cmpxchgi() using assembly (Shuowang (Wayne) Zhang) * build: AC_SUBST for AM_CFLAGS (Claes Nästén) * ibmi: Implement UDP disconnect (V-for-Vasili) * doc: update active maintainers list (Ben Noordhuis) * build: fix kFreeBSD build (James McCoy) * build: remove Windows 2016 workflows (Darshan Sen) * Revert "win,errors: remap ERROR_ACCESS_DENIED to UV_EACCES" (Darshan Sen) * unix: simplify getpwuid call (Jameson Nash) * build: filter CI by paths and branches (Jameson Nash) * build: add iOS to macos CI (Jameson Nash) * build: re-enable CI for windows changes (Jameson Nash) * process,iOS: fix build breakage in process.c (Denny C. Dai) * test: remove unused declarations in tcp_rst test (V-for-Vasili) * core: add thread-safe strtok implementation (Guilherme Íscaro) * win: fix incompatible-types warning (twosee) * test: fix flaky file watcher test (Ben Noordhuis) * build: fix AIX xlc autotools build (V-for-Vasili) * unix,win: fix UV_RUN_ONCE + uv_idle_stop loop hang (Ben Noordhuis) * win: fix unexpected ECONNRESET error on TCP socket (twosee) * doc: make sample cross-platform build (gengjiawen) * test: separate some static variables by test cases (Hannah Shi) * sunos: fs-event callback can be called after uv_close() (Andy Fiddaman) * uv: re-register interest in a file after change (Shuowang (Wayne) Zhang) * uv: register UV_RENAME event for _RFIM_UNLINK (Shuowang (Wayne) Zhang) * uv: register __rfim_event 156 as UV_RENAME (Shuowang (Wayne) Zhang) * doc: remove smartos from supported platforms (Ben Noordhuis) * macos: avoid posix_spawnp() cwd bug (Jameson Nash) * release: check versions of autogen scripts are newer (Jameson Nash) * test: rewrite embed test (Ben Noordhuis) * openbsd: use utimensat instead of lutimes (tuftedocelot) * doc: fix link to uvwget example main() function (blogdaren) * unix: use MSG_CMSG_CLOEXEC where supported (Ben Noordhuis) * test: remove disabled callback_order test (Ben Noordhuis) * win,pipe: fix bugs with pipe resource lifetime management (Jameson Nash) * loop: better align order-of-events behavior between platforms (Jameson Nash) * aix,test: uv_backend_fd is not supported by poll (V-for-Vasili) * kqueue: skip EVFILT_PROC when invalidating fds (chucksilvers) * darwin: fix atomic-ops.h ppc64 build (Sergey Fedorov) * zos: don't err when killing a zombie process (Shuowang (Wayne) Zhang) * zos: avoid fs event callbacks after uv_close() (Shuowang (Wayne) Zhang) * zos: correctly format interface addresses names (Shuowang (Wayne) Zhang) * zos: add uv_interface_addresses() netmask support (Shuowang (Wayne) Zhang) * zos: improve memory management of ip addresses (Shuowang (Wayne) Zhang) * tcp,pipe: fail `bind` or `listen` after `close` (theanarkh) * zos: implement uv_available_parallelism() (Shuowang (Wayne) Zhang) * udp,win: fix UDP compiler warning (Jameson Nash) * zos: fix early exit of epoll_wait() (Shuowang (Wayne) Zhang) * unix,tcp: fix errno handling in uv__tcp_bind() (Samuel Cabrero) * shutdown,unix: reduce code duplication (Jameson Nash) * unix: fix c99 comments (Ben Noordhuis) * unix: retry tcgetattr/tcsetattr() on EINTR (Ben Noordhuis) * docs: update introduction.rst (Ikko Ashimine) * unix,stream: optimize uv_shutdown() codepath (Jameson Nash) * zos: delay signal handling until after normal i/o (Shuowang (Wayne) Zhang) * stream: uv__drain() always needs to stop POLLOUT (Jameson Nash) * unix,tcp: allow EINVAL errno from setsockopt in uv_tcp_close_reset() (Stacey Marshall) * win,shutdown: improve how shutdown is dispatched (Jameson Nash)
show more ...
|
ee970e38 | 11-Jul-2022 |
Jameson Nash |
win,shutdown: improve how shutdown is dispatched (#3649) Split this off from endgame, so that it can be handled separately and earlier, rather than trying to detect inside endgame which
win,shutdown: improve how shutdown is dispatched (#3649) Split this off from endgame, so that it can be handled separately and earlier, rather than trying to detect inside endgame which case we are in. There appear to be some race conditions on the `handle` field still however, which this does not yet attempt to address.
show more ...
|
f5e4d85c | 11-Jul-2022 |
Stacey Marshall |
unix,tcp: allow EINVAL errno from setsockopt in uv_tcp_close_reset() (#3662) Some setsockopt() implememantations may return with errno of EINVAL when the socket has been shut down alread
unix,tcp: allow EINVAL errno from setsockopt in uv_tcp_close_reset() (#3662) Some setsockopt() implememantations may return with errno of EINVAL when the socket has been shut down already, as documented in the Open Group Specifications Issue 7, 2018. When this happens, reset errno and continue to mark the socket closed and handle any callback.
show more ...
|
47e95602 | 11-Jul-2022 |
Jameson Nash |
stream: uv__drain() always needs to stop POLLOUT (#3675) Regression caused by 1a91b51976a1adc6972081faa78b6b70022254d3 mistake. Refs: https://github.com/libuv/libuv/pull/3648 Fi
stream: uv__drain() always needs to stop POLLOUT (#3675) Regression caused by 1a91b51976a1adc6972081faa78b6b70022254d3 mistake. Refs: https://github.com/libuv/libuv/pull/3648 Fixes: https://github.com/libuv/libuv/pull/3648/3671
show more ...
|
c4d73c30 | 07-Jul-2022 |
Wayne Zhang |
zos: delay signal handling until after normal i/o (#3643) Port the changes made to AIX and other unix systems in #611 to z/OS. Defers the signal watcher that is used for process man
zos: delay signal handling until after normal i/o (#3643) Port the changes made to AIX and other unix systems in #611 to z/OS. Defers the signal watcher that is used for process management until after the dispatch of regular i/o watchers. Refs: https://github.com/libuv/libuv/pull/611 Co-authored-by: Igor Todorovski <itodorov@ca.ibm.com>
show more ...
|
6999994d | 07-Jul-2022 |
Jameson Nash |
unix,stream: optimize uv_shutdown() codepath (#3646) Once the write queue is empty, we can fire the event immediately, without needing a lot of syscalls and then waiting for the kernel t
unix,stream: optimize uv_shutdown() codepath (#3646) Once the write queue is empty, we can fire the event immediately, without needing a lot of syscalls and then waiting for the kernel to feed us the event on the next tick. This also makes it more similar to how it would behave if there was a write still in the queue also, which we dispatch later in the same event loop iteration, then drain.
show more ...
|
f1635257 | 07-Jul-2022 |
Ikko Ashimine |
docs: update introduction.rst (#3664) Github -> GitHub |
7ca20a26 | 06-Jul-2022 |
Ben Noordhuis |
unix: retry tcgetattr/tcsetattr() on EINTR (#3669) EINTR is explicitly documented as a possible error code of tcsetattr(). The documentation for tcgetattr() is silent on the subject
unix: retry tcgetattr/tcsetattr() on EINTR (#3669) EINTR is explicitly documented as a possible error code of tcsetattr(). The documentation for tcgetattr() is silent on the subject but better safe than sorry. Fixes: https://github.com/libuv/libuv/issues/3645
show more ...
|
3136561c | 06-Jul-2022 |
Ben Noordhuis |
unix: fix c99 comments (#3667) Causes compilation errors for people that build libuv with a C89 compiler. Refs: https://github.com/libuv/libuv/discussions/3666 |
1a91b519 | 29-Jun-2022 |
Jameson Nash |
shutdown,unix: reduce code duplication (#3648) The UV_ECANCELED codepath had an incorrect comment, and the implementation was generally less robust (for example, not checking if `cb`
shutdown,unix: reduce code duplication (#3648) The UV_ECANCELED codepath had an incorrect comment, and the implementation was generally less robust (for example, not checking if `cb` was NULL), so we can merge these codepaths for cleaner code.
show more ...
|
21083093 | 29-Jun-2022 |
Samuel Cabrero |
unix,tcp: fix errno handling in uv__tcp_bind() (#3652) The errno value is only meaningful if bind() fails and returns -1. Some bind() implementations may return success but modify e
unix,tcp: fix errno handling in uv__tcp_bind() (#3652) The errno value is only meaningful if bind() fails and returns -1. Some bind() implementations may return success but modify errno value internally, like the socket_wrapper library used by the Samba testsuite.
show more ...
|
27eec099 | 29-Jun-2022 |
Wayne Zhang |
zos: fix early exit of epoll_wait() (#3653) This fixes an early exit bug in z/OS implementation of epoll_wait(), resulting in some file events not being correctly captured. The
zos: fix early exit of epoll_wait() (#3653) This fixes an early exit bug in z/OS implementation of epoll_wait(), resulting in some file events not being correctly captured. The problem is that reventcount should only be incremented by 1, because _NFDS counts as 1 even for fds with multiple revents set. Also makes a few minor improvements to remove redundant checks. Co-authored-by: Igor Todorovski <itodorov@ca.ibm.com>
show more ...
|
e3aaff18 | 17-Jun-2022 |
Jameson Nash |
udp,win: fix UDP compiler warning (#3647) Previously it would pass a pointer to uninitialized memory to WSASendTo, which triggered a compiler warning. However, `addrlen` will be 0, so it
udp,win: fix UDP compiler warning (#3647) Previously it would pass a pointer to uninitialized memory to WSASendTo, which triggered a compiler warning. However, `addrlen` will be 0, so it seems unlikely to trigger an error or uninitialized memory access. Refs: https://github.com/libuv/leps/pull/10 Refs: https://github.com/libuv/libuv/pull/1872 Refs: https://github.com/libuv/libuv/pull/2217
show more ...
|
0b1c752b | 17-Jun-2022 |
Wayne Zhang |
zos: implement uv_available_parallelism() (#3650) Implement uv_available_parallelism() for z/OS by reporting the number of online cpu using __get_num_online_cpus() from ZOSLIB. |
8bcd689c | 11-Jun-2022 |
theanarkh <2923878201@qq.com> |
tcp,pipe: fail `bind` or `listen` after `close` (#3641) Return `UV_EINVAL` in `bind` and `listen` when `handle` is `UV_HANDLE_CLOSING` or `UV_HANDLE_CLOSED`. Fixes: https://gith
tcp,pipe: fail `bind` or `listen` after `close` (#3641) Return `UV_EINVAL` in `bind` and `listen` when `handle` is `UV_HANDLE_CLOSING` or `UV_HANDLE_CLOSED`. Fixes: https://github.com/libuv/libuv/issues/3503
show more ...
|
d938c104 | 17-May-2022 |
Wayne Zhang |
zos: improve memory management of ip addresses (#3640 3/3) Fixes an issue where under certain conditions, dynamically allocated ip addresses, strings, and buffers were either leaking mem
zos: improve memory management of ip addresses (#3640 3/3) Fixes an issue where under certain conditions, dynamically allocated ip addresses, strings, and buffers were either leaking memory, being incorrectly freed, or not performing error checks. Also fixes an issue where the uv_interface_address_t struct was not correctly initialized to 0, so use calloc() instead of malloc(). Co-authored-by: Igor Todorovski <itodorov@ca.ibm.com>
show more ...
|
524c5ed8 | 17-May-2022 |
Wayne Zhang |
zos: add uv_interface_addresses() netmask support (#3640 2/3) Use SIOCGIFNETMASK ioctl to retrieve the netmask for IPv4. However, this approach is not supported for IPv6. For IP
zos: add uv_interface_addresses() netmask support (#3640 2/3) Use SIOCGIFNETMASK ioctl to retrieve the netmask for IPv4. However, this approach is not supported for IPv6. For IPv6 netmask, z/OS currently only provides the prefix length through the __nif6e_prefixlen in __net_ifconf6entry_t struct, but this can be used to calculate the IPv6 netmask similar to android implementation. Co-authored-by: Igor Todorovski <itodorov@ca.ibm.com>
show more ...
|
75ad046b | 16-May-2022 |
Wayne Zhang |
zos: correctly format interface addresses names (#3640 1/3) On z/OS, the interface address name contains EBCDIC and may be padded with whitespaces. The whitespace padding needs to be tri
zos: correctly format interface addresses names (#3640 1/3) On z/OS, the interface address name contains EBCDIC and may be padded with whitespaces. The whitespace padding needs to be trimmed, and the interface address name needs to be converted from EBCDIC to ASCII. Co-authored-by: John Barboza <jbarboza@ca.ibm.com> Co-authored-by: Igor Todorovski <itodorov@ca.ibm.com>
show more ...
|
77c8e993 | 11-Jun-2022 |
Wayne Zhang |
zos: avoid fs event callbacks after uv_close() (#3620) On z/OS, fs events are implemented by registering file interest. When closing a fs event handle, it's possible that a change notifi
zos: avoid fs event callbacks after uv_close() (#3620) On z/OS, fs events are implemented by registering file interest. When closing a fs event handle, it's possible that a change notification has already been generated. In that case, the attempt to unregister file interest will fail with EALREADY. This will result in the fs event being delivered even though the handle is closing, which should not happen. Fixes: https://github.com/libuv/libuv/issues/3601
show more ...
|
51dcac5d | 25-May-2022 |
Wayne Zhang |
zos: don't err when killing a zombie process (#3625) On z/OS, EPERM is returned if the process being killed is a zombie. However, this shouldn't be treated as an error, so return 0 inste
zos: don't err when killing a zombie process (#3625) On z/OS, EPERM is returned if the process being killed is a zombie. However, this shouldn't be treated as an error, so return 0 instead. Co-authored-by: Muntasir Mallick <mmallick@ca.ibm.com> Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com>
show more ...
|
99ab53e9 | 24-May-2022 |
Sergey Fedorov |
darwin: fix atomic-ops.h ppc64 build (#3634) |
730e07e2 | 17-May-2022 |
chucksilvers |
kqueue: skip EVFILT_PROC when invalidating fds (#3629) On NetBSD with libuv 1.44.1 we see that cmake occasionally hangs waiting for a child process to exit, with libuv waiting forever fo
kqueue: skip EVFILT_PROC when invalidating fds (#3629) On NetBSD with libuv 1.44.1 we see that cmake occasionally hangs waiting for a child process to exit, with libuv waiting forever for `kevent` to deliver more events that never come. The child process has already exited and is waiting to be collected with `waitpid`. The hang occurs when the batch of events returned by one call to `kevent` contains both a EVFILT_READ event for an fd and a later EVFILT_PROC record for the PID with the same value as the earlier fd. What happens is that `uv__platform_invalidate_fd` is called to invalidate events later in the same batch for the fd, but `uv__platform_invalidate_fd` invalidates the later EVFILT_PROC event too because it sees the same "ident" value and does not check the "filter" value to differentiate "ident" values that refer to fds vs. "ident" values that refer to PIDs. Add a check for the "filter" value to avoid confusing these two different kinds of event "ident" values.
show more ...
|
1b8cc561 | 13-May-2022 |
V-for-Vasili |
aix,test: uv_backend_fd is not supported by poll (#3621) Fixes: https://github.com/libuv/libuv/issues/3614 Co-authored-by: Vasili Skurydzin <vasili.skurydzin@ibm.com> |
ee3718dd | 13-May-2022 |
Jameson Nash |
loop: better align order-of-events behavior between platforms (#3598) Previously, Windows would always defer event processing to the loop after they were received. This could cause confu
loop: better align order-of-events behavior between platforms (#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]: 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 So rather than declare those usages to be wrong, we change libuv to meet those users expectations. Replaces: https://github.com/libuv/libuv/pull/3585
show more ...
|
ec677354 | 13-May-2022 |
Jameson Nash |
win,pipe: fix bugs with pipe resource lifetime management (#3611) If `uv_close` was called while a connect was pending, we would fail to release the resources for the connection, since w
win,pipe: fix bugs with pipe resource lifetime management (#3611) 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: https://github.com/libuv/libuv/pull/3598#issuecomment-1111513567
show more ...
|