forked from libuv/libuv
-
Notifications
You must be signed in to change notification settings - Fork 0
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
[pull] v1.x from libuv:v1.x #28
Open
pull
wants to merge
571
commits into
jamlee-t:v1.x
Choose a base branch
from
libuv:v1.x
base: v1.x
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
`linkcheck` is printing the following error: ``` ( guide/utilities: line 311) broken https://en.wikipedia.org/wiki/Shared_library#Shared_libraries - Anchor 'Shared_libraries' not found ```
In Ubuntu, the kernel version reported by `uname()` follows the versioning format that Ubuntu uses for their kernels which does not have a direct correspondence with the mainline kernel version they're based on. Get that version from `/proc/version_signature` as documented in: https://wiki.ubuntu.com/Kernel/FAQ#Kernel.2FFAQ.2FGeneralVersionRunning.How_can_we_determine_the_version_of_the_running_kernel.3F
In Debian, the mainline kernel version is reported via the `uname()` `version` field.
The version of the deb package has changed to 7.2.
Specifically on non-longterm kernels between 5.16.0 (non-longterm) and 6.1.0 (longterm). Starting with longterm 6.1.0, the issue is solved.
Add PASE implementation of ifaddrs, getifaddrs, freeifaddrs. Refs: #4117
If a signal was received but was not dispatched before fork then caught_signals counter should be reset. Closing of signal pipe makes impossible to receive the signal that was counted. There is no need in this signal because it was sent to parent process Fixes: #3483
Make sure this handle is functional. The Windows kernel seems to have a bug that if the first use of AssignProcessToJobObject is for a Windows Store program, subsequent attempts to use the handle with fail with INVALID_PARAMETER (87). This is possilby because all uses of the handle must be for the same Terminal Services session. We can ensure it is tied to our current session now by adding ourself to it. We could remove ourself afterwards, but there doesn't seem to be a reason to. Secondly, we start the process suspended so that we can make sure we added it to the job control object before it does anything itself (such as launch more jobs or exit). Fixes: JuliaLang/julia#51461
XNU kernels anno ~2010 had a data corrruption bug where concurrent write and pwrite calls sometimes resulted in blocks of zeroes being written instead of the actual data. Libuv works around that by serializing all writes with a process-wide mutex, meaning oncurrent writes (for all files, not just single files) have a concurrency of 1. Obviously that's not great for performance. Modern day macOS no longer has this bug, so remove the workaround.
Make printing handles from gdb a little easier because it doesn't always know how to locate the stdout or stderr globals from libc. With this commit `call uv_print_all_handles(0, 0)` prints the handles from the default loop to stderr.
Switch from old-style ASSERT macro to new-style ASSERT_EQ,... macros. Using new-style macros makes it easier to debug test failures Fixes: #2974
The previous implementation using si11v1cpcmodel did not return a valid cpu model on z/OS. So use PCCA instead to correctly get the cpu model. Co-authored-by: Wayne Zhang <[email protected]> Co-authored-by: Gaby Baghdadi <[email protected]> Co-authored-by: Jonathan Lai <[email protected]> Fixes: #4102
uid 0 is `qsecofr` on IBM i. Refs: #4143
We can use the |bufs| argument directly instead of always copying it and sometimes heap-allocating it. The same trick doesn't work for uv_fs_write() because the iterator mutates the buffers in the list and that's visible to the caller. Fixes: #4038
Also introduce a new ASSERT_PTR_LT macro.
Under heavy workloads pthread_cond_wait on macOS can return EINVAL while all the input parameters are correct. As it happens due to a syscall having an errno of EBUSY we can detect it and work around it. Fixes: #4165
Section 3 of rfc 5737 lists 192.0.2.0/24 as TEST-NET-1, fix confusion about /8 and /24.
Implement in terms of pread/pwrite and only try to read/write the first buffer. Callers are supposed to handle partial reads and libuv takes care of partial writes. (Our own fs_read_bufs test doesn't but that's fine because this commit is a fix-up for unsupported platforms that aren't in our CI matrix.) Fixes: #4176
uv__fs_write_do() calls it `r` so call it that in `uv__fs_read_do()` too.
I split those out in a previous commit in anticipation of changes that never came. Let's merge them back.
The recently added support for minidumps use SHGetKnownFolderPath which requires shell32.lib - for some reason the builds work without that on x64, while failing on arm.
The workaround for preadv/pwritev is needed only for Solaris, not illumos, so avoid it on illumos. Haiku R1/prebeta5 (and later) provide preadv and pwritev, so only use workaround on lower versions. Signed-off-by: Jeffrey H. Johnson <[email protected]>
The compile-time detection check from commit 7b75935 ("kqueue: use EVFILT_USER for async if available") was not being used, breaking numerous operating systems. This commit hopefully unbreaks them. Fixes; #4608 Signed-off-by: Jeffrey H. Johnson <[email protected]>
Merge kevent calls along with the improvement of code simplicity. Signed-off-by: Andy Pan <[email protected]>
Requires updating the android builder, since the arm emulator is deprecated and unavailable now. Switch to using a Github Action plugin instead of a container, so that hopefully future updates will be delivered via that channel instead. Changed the idna test since printf returns EILSEQ for some byte sequences in the format on Android in glibc. We don't fully understand the cause, but we can avoid that by not asking it to reencode the bytes in the current locale settings.
For any API that takes a buffer and size pointer, check both pointers and the pointed-to size and return UV_EINVAL in case of error. Example: ``` int uv_foo(char* buffer, size_t* size) { if (buffer == NULL || size == NULL || *size == 0) return UV_EINVAL; ... } ``` In order to "peek" the necessary size for dynamic allocation, the following pattern can be used: ``` char *buf; char scratch[1]; size_t len = sizeof(scratch); int r; r = uv_foo(scratch, &len); assert(r == UV_ENOBUFS); buf = malloc(len); r = uv_foo(buf, &len); ... ```
Fixes: #3947 Signed-off-by: Juan José Arboleda <[email protected]>
This commit introduces the `uv_thread_detach` for thread detaching, allowing threads to be detached state on both UNIX and Windows platforms. Signed-off-by: Juan José Arboleda <[email protected]>
`uv_thread_setname()` sets the name of the current thread. Different platforms define different limits on the max number of characters a thread name can be: Linux, IBMi (16), macOS (64), Windows (32767), and NetBSD (32), etc. `uv_thread_setname()` will truncate it in case `name` is larger than the limit of the platform. `uv_thread_getname()` gets the name of the thread specified by `tid`. The thread name is copied into the buffer pointed to by `name`. The `size` parameter specifies the size of the buffer pointed to by `name`. The buffer should be large enough to hold the name of the thread plus the trailing NUL, or it will be truncated to fit.
Upgrade GHA image to Ubuntu 24.04 and use the distro-provided qemu. It should not be necessary anymore to install qemu from .deb because the stock qemu is new enough in 24.04.
Libuv looks for "Processor" in /proc/cpuinfo but it's been reported that on at least some Raspberry Pi models, it's called "model name". Look for both. Fixes: nodejs/node#56105
io_uring support was default-disabled because of numerous kernel bugs but those are all in the sqpoll (file i/o) parts of io_uring. Batching of epoll_ctl calls through io_uring works fine, is a nice optimization, and is therefore unconditionally enabled again. The UV_USE_IO_URING environment variable now only affects sqpoll, and only when the UV_LOOP_ENABLE_IO_URING_SQPOLL event loop flag is set. Fixes: #4616
It was introduced in Vista, so we can assume it's always there now.
The OG MinGW has been dead for years, MinGW-w64 has taken its place.
Replaces: #4504 Fixes: #1980 Fixes: #3267 Co-authored-by: Hüseyin Açacak <[email protected]>
Co-authored-by: Andrew McGoogan <[email protected]> Fixes: nodejs/node#52769
This commit documents a FreeBSD kernel issue where uv_fs_event can receive a NULL filename and updates test-fs-event.c to skip filename assertions on FreeBSD. * Bugzilla: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197695 Refs: #4606 Signed-off-by: Juan José Arboleda <[email protected]>
Shuffle around and DRY the sendmsg logic in preparation for uv_udp_try_send2(). NFC barring bugs. This work was sponsored by ISC, the Internet Systems Consortium.
Add a version of uv_udp_try_send that can send multiple datagrams. Uses sendmmsg(2) on platforms that support it (Linux, FreeBSD, macOS), falls back to a regular sendmsg(2) loop elsewhere. This work was sponsored by ISC, the Internet Systems Consortium.
Replace comparison of `alloc_cb_called` with the total bytes read (`bytes_read`) to validate the test's correctness. Fixes: #4650 Signed-off-by: Juan José Arboleda <[email protected]>
This patch will update Android API in CI to 29 and will set up the fdsan in the test runner. Signed-off-by: Juan José Arboleda <[email protected]> Fixes: #4369
Fixes: #4651 Signed-off-by: Juan José Arboleda <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
See Commits and Changes for more details.
Created by pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )