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 ...
|
7825bfb4 | 09-May-2022 |
Ben Noordhuis |
test: remove disabled callback_order test (#3619) This test has always been disabled for the 10 years of its existence and there are other tests that exercise "what happens when" event o
test: remove disabled callback_order test (#3619) This test has always been disabled for the 10 years of its existence and there are other tests that exercise "what happens when" event ordering. Fixes: https://github.com/libuv/libuv/issues/3618
show more ...
|
03a698b9 | 27-Apr-2022 |
Ben Noordhuis |
unix: use MSG_CMSG_CLOEXEC where supported (#3609) Use MSG_CMSG_CLOEXEC on Unix-y platforms that support it (all except macOS and SunOS spawn.) Remove the feature test for Linux
unix: use MSG_CMSG_CLOEXEC where supported (#3609) Use MSG_CMSG_CLOEXEC on Unix-y platforms that support it (all except macOS and SunOS spawn.) Remove the feature test for Linux. Libuv's kernel baseline is 2.6.32 and MSG_CMSG_CLOEXEC was added in 2.6.23.
show more ...
|
e0680d30 | 27-Apr-2022 |
blogdaren |
doc: fix link to uvwget example main() function (#3605) |
4e63e488 | 27-Apr-2022 |
tuftedocelot |
openbsd: use utimensat instead of lutimes (#3607) OpenBSD doesn't have lutimes so utimensat should be used instead. |
a302ad42 | 27-Apr-2022 |
Ben Noordhuis |
test: rewrite embed test (#3608) - fix busy loop - fix multi-thread race conditions - reduce amount of platform-specific code Fixes: https://github.com/libuv/libuv/issues/36
test: rewrite embed test (#3608) - fix busy loop - fix multi-thread race conditions - reduce amount of platform-specific code Fixes: https://github.com/libuv/libuv/issues/3606
show more ...
|
9e59aa1b | 19-Apr-2022 |
Jameson Nash |
release: check versions of autogen scripts are newer (#3554) Use libtoolize --force to ensure it updates m4 directory with the latest files. Add an option "release" to the autogen.sh scr
release: check versions of autogen scripts are newer (#3554) Use libtoolize --force to ensure it updates m4 directory with the latest files. Add an option "release" to the autogen.sh script that checks the versions of the input tools, so that we know they are always using the latest version for each release.
show more ...
|
7c9b3938 | 15-Apr-2022 |
Jameson Nash |
macos: avoid posix_spawnp() cwd bug (#3597) macOS 10.15 has a bug where configuring the working directory with posix_spawn_file_actions_addchdir_np() makes posix_spawnp() fail with E
macos: avoid posix_spawnp() cwd bug (#3597) macOS 10.15 has a bug where configuring the working directory with posix_spawn_file_actions_addchdir_np() makes posix_spawnp() fail with ENOENT even though the executable is spawned successfully. Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|