#
9dddebab |
| 12-Sep-2024 |
Ben Noordhuis |
test: delete test with invalid assumption (#4530) Delete the fs_event_error_reporting test. It fails in different ways, most frequently on the TSan sanitizer buildbot, due to running out
test: delete test with invalid assumption (#4530) Delete the fs_event_error_reporting test. It fails in different ways, most frequently on the TSan sanitizer buildbot, due to running out of file descriptors when that is not expected, or vice versa, *not* running out of file descriptors when that *is* expected. The test creates a large number of event loops and expects to, eventually, hit EMFILE but it sometimes hits it too early, and sometimes not at all. I don't think TSan is really responsible here, it just makes the invalid assumption in the test itself more visible. Fixes: https://github.com/libuv/libuv/issues/4368
show more ...
|
#
1eac3310 |
| 10-Aug-2024 |
Ben Noordhuis |
linux: support abstract unix socket autobinding (#4499) Autobinding is a feature that lets the kernel pick a name for the abstract socket, instead of userspace having to provide one.
linux: support abstract unix socket autobinding (#4499) Autobinding is a feature that lets the kernel pick a name for the abstract socket, instead of userspace having to provide one. Two bugs that this change exposed are also fixed: 1. strlen(sa.sun_path) can read past the end if the file path is exactly sizeof(sa.sun_path) long (use memchr instead), and 2. don't return UV_ENOBUFS for abstract sockets when the buffer is exactly large enough to hold the result; per commit e5f4b79809, abstract socket names are not zero-terminated
show more ...
|
#
badecdca |
| 29-Jul-2024 |
Santiago Gimeno |
fsevents: detect watched directory removal (#4376) Which was broken both in `windows` and `macos`.
|
#
18266a69 |
| 29-Jul-2024 |
Ian Butterworth |
win,fs: use posix delete semantics, if supported (#4318) Implements posix delete for files and dirs, with fallback to the old method if not supported (e.g. Fat32 or Win8). Fixes
win,fs: use posix delete semantics, if supported (#4318) Implements posix delete for files and dirs, with fallback to the old method if not supported (e.g. Fat32 or Win8). Fixes: #3839
show more ...
|
#
ba24986f |
| 20-Jun-2024 |
Andy Pan |
unix: support SO_REUSEPORT with load balancing for UDP (#4419) Signed-off-by: Andy Pan <i@andypan.me>
|
#
d2d92b74 |
| 21-May-2024 |
Andy Pan |
unix: support SO_REUSEPORT with load balancing for TCP
|
#
3ecce914 |
| 21-Mar-2024 |
Ben Noordhuis |
linux: don't delay EPOLL_CTL_DEL operations (#4328) Perform EPOLL_CTL_DEL immediately instead of going through io_uring's submit queue, otherwise the file descriptor may be closed by
linux: don't delay EPOLL_CTL_DEL operations (#4328) Perform EPOLL_CTL_DEL immediately instead of going through io_uring's submit queue, otherwise the file descriptor may be closed by the time the kernel starts the operation. Fixes: https://github.com/libuv/libuv/issues/4323
show more ...
|
#
3f7191e5 |
| 05-Feb-2024 |
Brad King |
win/spawn: optionally run executable paths with no file extension (#4292) Add a process options flag to enable the optional behavior. Most users are likely recommended to set this flag b
win/spawn: optionally run executable paths with no file extension (#4292) Add a process options flag to enable the optional behavior. Most users are likely recommended to set this flag by default, but it was deemed potentially breaking to set it by default in libuv. Co-authored-by: Kyle Edwards <kyle.edwards@kitware.com>
show more ...
|
#
51a22f60 |
| 22-Dec-2023 |
Matheus Izvekov |
unix,win: fix busy loop with zero timeout timers (#4250) Calling `uv_timer_start(h, cb, 0, 0)` from a timer callback resulted in the timer running immediately because it was inserted at
unix,win: fix busy loop with zero timeout timers (#4250) Calling `uv_timer_start(h, cb, 0, 0)` from a timer callback resulted in the timer running immediately because it was inserted at the front of the timer heap. If the callback did that every time, libuv would effectively busy-loop in `uv__run_timers()` and never make forward progress. Work around that by collecting all expired timers into a queue and only running their callback afterwards. Fixes: https://github.com/libuv/libuv/issues/4245 Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
#
e135dfe1 |
| 14-Nov-2023 |
Hao Hu <33607772+hhu8@users.noreply.github.com> |
unix,win: utility for setting priority for thread (#4075) Add uv_thread_setpriority for setting priority for threads created by uv_thread_create. Add uv_thread_getpriority for getting th
unix,win: utility for setting priority for thread (#4075) Add uv_thread_setpriority for setting priority for threads created by uv_thread_create. Add uv_thread_getpriority for getting thread priority. For Linux by default, if the scheduling policy is SCHED_OTHER and the priority is 0, we need to set the nice value. Fixes: https://github.com/libuv/libuv/issues/4051
show more ...
|
#
2a4cab70 |
| 29-Sep-2023 |
SmorkalovG |
unix: reset signal counters after fork (#3485) If a signal was received but was not dispatched before fork then caught_signals counter should be reset. Closing of signal pipe makes i
unix: reset signal counters after fork (#3485) 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: https://github.com/libuv/libuv/issues/3483
show more ...
|
#
c97017dd |
| 14-Aug-2023 |
Kyle Edwards |
win,spawn: allow `%PATH%` to be unset (#4116) Fix: https://github.com/libuv/libuv/issues/4115
|
#
e893cd68 |
| 03-Aug-2023 |
Ben Noordhuis |
unix: set ipv6 scope id for link-local addresses (#4107) Link-local addresses (prefix fe80::/64) don't route unless you specify the network interface to use so make libuv do that.
unix: set ipv6 scope id for link-local addresses (#4107) Link-local addresses (prefix fe80::/64) don't route unless you specify the network interface to use so make libuv do that. Fixes: https://github.com/nodejs/node/issues/48846
show more ...
|
#
55376b04 |
| 25-Jul-2023 |
Ben Noordhuis |
test: enable disabled spawn_same_stdout_stderr (#4105) This test was added in commit e403a2c486 from 2014 but its author forgot to enable it.
|
#
9c1de6e9 |
| 25-Jul-2023 |
Ben Noordhuis |
test: enable disabled fs_link (#4104) This test was added in commit 060026ced from 2011 but its author forgot to actually enable it.
|
#
49d83c03 |
| 25-Jul-2023 |
Ben Noordhuis |
test: enable disabled tcp_connect6_error_fault (#4103) The test was added in commit e3f2631127 from 2011 but it appears the author forgot to add it to the test list. The other t
test: enable disabled tcp_connect6_error_fault (#4103) The test was added in commit e3f2631127 from 2011 but it appears the author forgot to add it to the test list. The other test from that commit was enabled by yours truly in 2012 in 7447048981 but apparently I overlooked the second test as well.
show more ...
|
#
6df5a721 |
| 06-Apr-2023 |
Trevor Norris |
test: add uv_cancel test for threadpool (#4065 2/2) Check that uv_cancel() returns UV_EBUSY when called while the uv_work_cb is being executed.
|
#
24d1d080 |
| 14-Jun-2023 |
Trevor Norris |
src: don't run timers if loop is stopped/unref'd (#4048) The initial run of timers shouldn't happen if uv_stop() has been run before uv_run() was called, and for backwards compatibility
src: don't run timers if loop is stopped/unref'd (#4048) The initial run of timers shouldn't happen if uv_stop() has been run before uv_run() was called, and for backwards compatibility they also shouldn't run if they have been unref'd before calling uv_run().
show more ...
|
#
2f1614b1 |
| 06-Jun-2023 |
Ben Noordhuis |
unix,win: add UV_PIPE_NO_TRUNCATE flag (#4040) Libuv's default behavior is to truncate long Unix socket paths. The flag tells it to return an error instead. Fixes: https://githu
unix,win: add UV_PIPE_NO_TRUNCATE flag (#4040) Libuv's default behavior is to truncate long Unix socket paths. The flag tells it to return an error instead. Fixes: https://github.com/libuv/libuv/issues/4036
show more ...
|
#
8f32a14a |
| 23-May-2023 |
Stefan Karpinski |
fs: use WTF-8 on Windows (#2970) This allows working with valid filenames that are not well-formed UTF-16. This is a superset of UTF-8, which does not error when it encounters an unp
fs: use WTF-8 on Windows (#2970) This allows working with valid filenames that are not well-formed UTF-16. This is a superset of UTF-8, which does not error when it encounters an unpaired surrogate but simply allows it. Fixes: https://github.com/libuv/libuv/issues/2048 Refs: https://simonsapin.github.io/wtf-8/ Replaces: https://github.com/libuv/libuv/pull/2192 by Nikolai Vavilov <vvnicholas@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
07261493 |
| 17-May-2023 |
Santiago Gimeno |
Revert "win: implement uv_try_write() for pipes(#3825 1/2)" This reverts commit 244e0e20592f40fce87d573c9f7b6ff7f189c382. For some reason this is breaking node.js IPC. I plan to inv
Revert "win: implement uv_try_write() for pipes(#3825 1/2)" This reverts commit 244e0e20592f40fce87d573c9f7b6ff7f189c382. For some reason this is breaking node.js IPC. I plan to investigate it but we can let this for the next release.t PR-URL: https://github.com/libuv/libuv/pull/4003
show more ...
|
#
30fc896c |
| 15-May-2023 |
Santiago Gimeno |
unix: handle CQ overflow in iou ring (#3991) When there are more than 128 concurrent cq completions the CQ ring overflows as signaled via the `UV__IORING_SQ_CQ_OVERFLOW`. If this hap
unix: handle CQ overflow in iou ring (#3991) When there are more than 128 concurrent cq completions the CQ ring overflows as signaled via the `UV__IORING_SQ_CQ_OVERFLOW`. If this happens we have to enter the kernel to get the remaining items.
show more ...
|
#
c8a1e613 |
| 27-Apr-2023 |
Ben Noordhuis |
unix,win: add uv_clock_gettime() (#3971) Fixes: https://github.com/libuv/libuv/issues/1674
|
#
e02642cf |
| 17-Apr-2023 |
Trevor Norris |
src: fix events/events_waiting metrics counter (#3957) The worker pool calls all callbacks locally within the queue. So the value of nevents doesn't properly reflect that case. Increase
src: fix events/events_waiting metrics counter (#3957) The worker pool calls all callbacks locally within the queue. So the value of nevents doesn't properly reflect that case. Increase the number of events directly from the worker pool's callback to correct this. In order to properly determine if the events_waiting counter needs to be incremented, store the timeout value at the time the event provider was called.
show more ...
|
#
66009549 |
| 20-Mar-2023 |
Trevor Norris |
win,unix: change execution order of timers (#3927) The maximum number of times timers should run when uv_run() is called with UV_RUN_ONCE and UV_RUN_NOWAIT is 1. Do that by conditionally
win,unix: change execution order of timers (#3927) The maximum number of times timers should run when uv_run() is called with UV_RUN_ONCE and UV_RUN_NOWAIT is 1. Do that by conditionally calling timers before entering the while loop when called with UV_RUN_DEFAULT. The reason to always run timers at the end of the while loop, instead of at the beginning, is to help enforce the conceptual event loop model. Which starts when entering the event provider (e.g. calling poll). Other than only allowing timers to be processed once per uv_run() execution, the only other noticeable change this will show is if all the following are true: * uv_run() is called with UV_RUN_NOWAIT or UV_RUN_ONCE. * An event is waiting to be received when poll is called. * Execution time between the call to uv_timer_start() and entering the while loop is longer than the timeout. If all these are true, then timers that would have executed before entering the event provider will now be executed afterward. Fixes: https://github.com/libuv/libuv/issues/3686 Co-authored-by: Momtchil Momtchev <momtchil@momtchev.com>
show more ...
|