Skip to content
This repository was archived by the owner on Jul 15, 2023. It is now read-only.

Conversation

erw7
Copy link

@erw7 erw7 commented Feb 3, 2020

Update libuv, because libuv#2501 was merged upstream.

See the result of neovim/neovim#11808 and decide whether to merge.

cjihrig and others added 30 commits September 9, 2019 12:53
Fix the following undefined symbols error with __ANDROID_API__ < 21:
- epoll_create1
- epoll_pwait
- futimens
There are some special environment variables on Windows that
start with a '=' sign, e.g. per-drive working directories.
In those cases, an initial '=' in the name of the environment
variable needs to be skipped when looking for the '=' that separates
it from its value.

PR-URL: libuv#2473
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jameson Nash <vtjnash+github@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Add an API for obtaining cryptographically strong random data from the
system PRNG.

Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net>
Refs: libuv#1055
PR-URL: libuv#2347
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Use our builtin getrandom helper instead of the more verbose CryptoAPI
functions, which also happen to be deprecated.

PR-URL: libuv#2485
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Using raw copies in place of sphinx literalinclude
directives as the API of v1.x is now stable.

Fixes: libuv#2350
PR-URL: libuv#2353
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Fix an issue where WINDOWS_BUFFER_SIZE_EVENT occurs and unexpected
SIGWINCH is received before calling
uv__tty_console_resize_message_loop_thread.

Refs: neovim/neovim#10978 (comment)
PR-URL: libuv#2478
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Mainly disabling source membership for udp feature, unsupported.

PR-URL: libuv#2458
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Fixes: libuv#2464
Refs: libuv#2471
PR-URL: libuv#2461
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Test `test-fs.c` fails when built in a relocated directory because
the build does link the required test fixture.

PR-URL: libuv#2444
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Reviewed-By: Jameson Nash <vtjnash+github@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: libuv#2477
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Goes back to just using it to watch folders,
but keeps the other logic changes around.

Refs: libuv#387
Refs: libuv#2082
Refs: libuv#1572
Refs: nodejs/node#29460
Fixes: libuv#2488
Closes: libuv#2452
PR-URL: libuv#2459
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
This case got lost by accident in
libuv#2082,
preventing the realpath `/` from ever matching.

Fixes: nodejs/node#28917
PR-URL: libuv#2460
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
- Bump CMake version to 3.4 so we can eventually use all the
cool things like better generator expression support, and
`target_sources`, and also better MSVC runtime linkage support

- Reorganize includes to be all in one place.

- Rename libuv_buildtests option to LIBUV_BUILD_TESTS. It is disabled
unless BUILD_TESTING is ON *and* libuv is the "root" project. This helps
projects that might use libuv as a git submodule, or as a download that
is then passed to `add_subdirectory`.

Refs: libuv#2490
PR-URL: libuv#2495
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Signed-off-by: MaYuming <maym@appexnetworks.com>
PR-URL: libuv#2489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
FreeBSD defines `sin_len` and `sin6_len` inside `sockaddr_in` and
`sockaddr_in6`. `sockaddr`s come from `getsockname` and `uv_ip4_addr`
will differ in the first byte if libuv doesn't set `sin_len` correctly.

PR-URL: libuv#2492
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
In the fs_readdir_empty_dir test, the uv_fs_readdir() request is
cleaned up after calling uv_fs_closedir(). However, the readdir
request should be cleaned up before calling uv_fs_closedir().

Fixes: libuv#2496
PR-URL: libuv#2497
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
When cleaning up after uv_fs_readdir(), it is important to
call uv_fs_req_cleanup() on the readdir request prior to calling
uv_fs_closedir(), because the latter frees memory that the
former needs in order to do its job.

PR-URL: libuv#2497
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Remove duplicated test-ip6-addr.c in cmake build file
and gyp file.

PR-URL: libuv#2494
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: libuv#2486
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
PR-URL: libuv#2486
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Libuv loaded and unloaded the Core Services and Application Services for
every call to uv_set_process_title().

Change that to load them on the first call to uv_set_process_title() and
delay unloading until libuv is unloaded.

Speeds up process_title_threadsafe by about 10x on my system. It should
fail less often (hopefully not at all) on the CI now.

PR-URL: libuv#2480
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Stop dlsym-ing the symbol name at run-time, that was only necessary to
support macOS and iOS versions that were already near-obsolete when this
feature was introduced in August 2013.

PR-URL: libuv#2480
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Update this code to be more in line with the Windows version.

Previously, callers (such as nodejs) might assume it was always safe to de-reference this parameter:
https://github.com/nodejs/node/blob/d2634be56258e2b957c1061c5f4d86792975bfa9/src/tcp_wrap.cc#L349 called from https://github.com/nodejs/node/blob/d2634be56258e2b957c1061c5f4d86792975bfa9/src/udp_wrap.cc#L567

I suspect this may have been unreachable, and that it was guaranteed by the kernel to be `>= sizeof(struct sockaddr)`, so this should be a NFC simplification.

PR-URL: libuv#2330
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
PR-URL: libuv#2501
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
Reviewed-By: Jameson Nash <vtjnash+github@gmail.com>
PR-URL: libuv#2505
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: libuv#2443
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
It's necessary for MAC_OS_X_VERSION_10_12 to be defined.

Refs: libuv#2491
PR-URL: libuv#2516
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
virtualyw and others added 21 commits January 8, 2020 12:00
Fixes: libuv#1425
PR-URL: libuv#2600
Refs: libuv#2124
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Some people have misread this section to imply that libuv does not
support Unix `pipe` objects, while it only should be saying that the
UV_CREATE_PIPE makes a socketpair. Clarify the docs to say specifically
that `uv_pipe_t` represents any local file stream.

PR-URL: libuv#2607
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
This code already had special handling for decoding utf-8
characters correctly for the UCS-2 conhost
(trailing incomplete bytes and characters > 0xFFFF).
Rather than trying to duplicate that, we can simply
delete the duplicate code-path and selectively disable
the parts that do not apply.

PR-URL: libuv#1965
Ref: JuliaLang/julia#27267
Co-authored-by: Mustafa M. <mus-m@outlook.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This assert was stronger than necessary (we assert the actual condition
later in this function). And it's vulnerable to a race condition
occurring in uv__work_done where we drain the work queue but still have
a stale message on this object.

Fixes: libuv#2610
PR-URL: libuv#2615
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Fixes: libuv#2603
PR-URL: libuv#2604
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Refs: libuv#2603
PR-URL: libuv#2604
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
The test checks that the creation time equals the birth time on systems
that support the notion of birth time (macOS, Linux.)

The test was flaky because there was a write taking place between the
creation of the file and the fstat() call, sometimes changing the ctime
by fractions of milliseconds... First fstat(), only then write().

Fixes: libuv#2235
PR-URL: libuv#2621
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Since this re-open logic is supposed to be transparent to the parent
program, this flag helps ensure that there are no unintended
side-effects. This flag is already the default (and only possible
option) on FreeBSD. Normally, Linux will also act as if you passed
NOCTTY. However, it appears that mac OS sometimes strips the parent
process of its controlling terminal if you don't pass this flag.

Fixes: libuv#973
Fixes: JuliaLang/julia#16398
PR-URL: libuv#2619
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Changes since version 1.34.0:

* unix: fix -Wstrict-aliasing compiler warning (Ben Noordhuis)

* unix: cache address of dlsym("mkostemp") (Ben Noordhuis)

* build: remove -pedantic from compiler flags (Ben Noordhuis)

* Revert "darwin: assume pthread_setname_np() is available" (Ben
  Noordhuis)

* Revert "darwin: speed up uv_set_process_title()" (Ben Noordhuis)

* darwin: assume pthread_setname_np() is available (Ben Noordhuis)

* ibmi: fix the false isatty() issue on IBMi (Xu Meng)

* test: fix test failure under NetBSD and OpenBSD (David Carlier)

* test: skip some test cases on IBMi (Xu Meng)

* test: skip uv_(get|set)_process_title on IBMi (Xu Meng)

* doc: remove binaries for Windows from README (Richard Lau)

* unix: fix -Wunused-but-set-variable warning (George Zhao)

* unix: pass sysctl size arg using ARRAY_SIZE macro (David Carlier)

* test: disallow running the test suite as root (cjihrig)

* unix: suppress -Waddress-of-packed-member warning (Ben Noordhuis)

* misc: make more tags "not-stale" (Jameson Nash)

* test: fix pthread memory leak (Trevor Norris)

* docs: delete socks5-proxy sample (Jameson Nash)

* ibmi: fix the CMSG length issue (Xu Meng)

* docs: fix formatting (Jameson Nash)

* unix: squelch fchmod() EPERM on CIFS share (Ben Noordhuis)

* docs: fix linkcheck (Jameson Nash)

* docs: switch from linux.die.net to man7.org (Jameson Nash)

* win: remove abort when non-IFS LSP detection fails (virtualyw)

* docs: clarify that uv_pipe_t is a pipe (Jameson Nash)

* win,tty: avoid regressions in utf-8 handling (Jameson Nash)

* win: remove bad assert in uv_loop_close (Jameson Nash)

* test: fix -fno-common build errors (Ben Noordhuis)

* build: turn on -fno-common to catch regressions (Ben Noordhuis)

* test: fix fs birth time test failure (Ben Noordhuis)

* tty,unix: avoid affecting controlling TTY (Jameson Nash)
PR-URL: libuv#2498
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
It has been observed that running the tests via shell script
can cause special environment variables to be missing. This
commit ensures that a special Windows environment variable is set.

Fixes: libuv#2622
PR-URL: libuv#2624
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
If the output data contained a null byte (for example, because it was
really utf16), we'd truncate the output there. This commonly would
manifest as the output on the CI bot being:

> not ok 308 - threadpool_cancel_random
> # exit code 3
> # Output from process :
> # A

Now we'll attempt to print out the whole error message as text (albeit
with the wrong encoding, but the ascii content should still nearly
always be readable).

PR-URL: libuv#2611
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
It's been reported that calling this function causes the Core Graphics
framework to start reporting bogus values.

Commit 565cdd1 ('Revert "darwin: speed up uv_set_process_title()"')
attempted to fix this but apparently merely postponed the moment
when `CGDisplayPixelsWide()` and friends start reporting bogus values.

The Chromium code base mentions that calling `SetApplicationIsDaemon()`
prevents the HIServices framework from terminating the process when it
can't connect to launchservicesd.

Libuv itself doesn't use HIServices but it's possible that the libuv
user does. If said user doesn't call `SetApplicationIsDaemon()`, it's
possible this commit introduces an observable change in behavior.

The `SetApplicationIsDaemon()` call was introduced in commit 08e0e63
("darwin: avoid calling GetCurrentProcess") from October 2013 to work
around a bug in macos 10.9 where the Activity Monitor showed the program
as "Not responding."

Fixes: libuv#2566 (for real, hopefully)
Fixes: nodejs/node#31328
PR-URL: libuv#2593
Refs: https://cs.chromium.org/chromium/src/sandbox/mac/system_services.cc?l=26&rcl=a06d2fe5a279ddecd358d919d461080e2c53c92e
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
On IBMi PASE we need to call Qp2getifaddrs() to get the network
interface configurations. And to call QDCRLIND to get the physical
addresses.

PR-URL: libuv#2614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
The mutex also needs to protect the access to the state->loop variable,
since that's owned by the child thread and will be destroyed as soon as
it processes our message.

Fixes: libuv#2625
PR-URL: libuv#2626
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Set this to NULL just before disposing it to make mistakes more
painfully obvious, hopefully.

PR-URL: libuv#2626
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
This reverts commit ca08b48, for the
same reasons that it was reverted the last time it was merged.

Refs: libuv#475
Refs: libuv#2447
PR-URL: libuv#2602
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
`uv__open_cloexec()` already returns a libuv error code in case
of failure, and not `-1` like syscalls do.

Fixes: nodejs/help#2099
PR-URL: libuv#2645
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Changes since version 1.34.1:

* misc: adjust stalebot deadlines (Jameson Nash)

* test: fix env-vars flakiness (cjihrig)

* test: avoid truncating output lines (Jameson Nash)

* darwin: stop calling SetApplicationIsDaemon() (Ben Noordhuis)

* ibmi: implement uv_interface_addresses() (Xu Meng)

* osx,fsevent: fix race during uv_loop_close (Jameson Nash)

* osx,fsevent: clear pointer when deleting it [NFCI] (Jameson Nash)

* Revert "aix: replace ECONNRESET with EOF if already closed" (Jameson
  Nash)

* unix: handle uv__open_cloexec return value correctly (Anna Henningsen)
@justinmk
Copy link
Member

justinmk commented Feb 3, 2020

minor note: looking at v1.x...8849f33 , it looks like the uv_vtermstate_t and uv_set_vterm_state changes in include/uv/win.h could be removed:

v1.x...8849f33#diff-8eef231986656444fd461ec05249614cR698

2020.01.24, Version 1.34.2 (Stable)

Changes since version 1.34.1:

* misc: adjust stalebot deadlines (Jameson Nash)

* test: fix env-vars flakiness (cjihrig)

* test: avoid truncating output lines (Jameson Nash)

* darwin: stop calling SetApplicationIsDaemon() (Ben Noordhuis)

* ibmi: implement uv_interface_addresses() (Xu Meng)

* osx,fsevent: fix race during uv_loop_close (Jameson Nash)

* osx,fsevent: clear pointer when deleting it [NFCI] (Jameson Nash)

* Revert "aix: replace ECONNRESET with EOF if already closed" (Jameson Nash)

* unix: handle uv__open_cloexec return value correctly (Anna Henningsen)
@erw7 erw7 changed the title [WIP] Update to 1.34.2 Update to 1.34.2 Feb 3, 2020
@justinmk justinmk merged commit b899d12 into neovim:nvim Feb 4, 2020
@erw7 erw7 deleted the libuv-v1.34.2 branch February 5, 2020 11:14
farisachugthai pushed a commit to farisachugthai/neovim that referenced this pull request Aug 4, 2020
neovim#11808
neovim/libuv#12

v1.34.2
  * darwin: stop calling SetApplicationIsDaemon() (Ben Noordhuis)
  * osx,fsevent: fix race during uv_loop_close (Jameson Nash)
  * unix: handle uv__open_cloexec return value correctly (Anna Henningsen)
v1.34.1
  * unix: fix -Wstrict-aliasing compiler warning (Ben Noordhuis)
  * unix: cache address of dlsym("mkostemp") (Ben Noordhuis)
  * win,tty: avoid regressions in utf-8 handling (Jameson Nash)
  * win: remove bad assert in uv_loop_close (Jameson Nash)
  * tty,unix: avoid affecting controlling TTY (Jameson Nash)
v1.34.0
  * unix: refactor uv__fs_copyfile() logic (cjihrig)
  * fs: handle non-functional statx system call (Milad Farazmand)
  * unix,win: add uv_sleep() (cjihrig)
  * fs: add uv_fs_mkstemp (Saúl Ibarra Corretgé)
v1.33.0
  * win: fix reading hidden env vars (Anna Henningsen)
  * unix,win: add uv_random() (Ben Noordhuis)
  * win, tty: fix problem of receiving unexpected SIGWINCH (erw7)
  * fs: use statvfs in uv__fs_statfs() for Haiku (Calvin Hill)
  * fsevents: stop using fsevents to watch files (Jameson Nash)
  * win,tty: add uv_tty_{get,set}_vterm_state (erw7)
  * unix: update uv_fs_copyfile() fallback logic (Stefan Bender)
  * win: cast setsockopt struct to const char* (Shelley Vohr)
  * unix: fix {Net,Open}BSD build
landerlo pushed a commit to landerlo/neovim that referenced this pull request Nov 23, 2020
neovim#11808
neovim/libuv#12

v1.34.2
  * darwin: stop calling SetApplicationIsDaemon() (Ben Noordhuis)
  * osx,fsevent: fix race during uv_loop_close (Jameson Nash)
  * unix: handle uv__open_cloexec return value correctly (Anna Henningsen)
v1.34.1
  * unix: fix -Wstrict-aliasing compiler warning (Ben Noordhuis)
  * unix: cache address of dlsym("mkostemp") (Ben Noordhuis)
  * win,tty: avoid regressions in utf-8 handling (Jameson Nash)
  * win: remove bad assert in uv_loop_close (Jameson Nash)
  * tty,unix: avoid affecting controlling TTY (Jameson Nash)
v1.34.0
  * unix: refactor uv__fs_copyfile() logic (cjihrig)
  * fs: handle non-functional statx system call (Milad Farazmand)
  * unix,win: add uv_sleep() (cjihrig)
  * fs: add uv_fs_mkstemp (Saúl Ibarra Corretgé)
v1.33.0
  * win: fix reading hidden env vars (Anna Henningsen)
  * unix,win: add uv_random() (Ben Noordhuis)
  * win, tty: fix problem of receiving unexpected SIGWINCH (erw7)
  * fs: use statvfs in uv__fs_statfs() for Haiku (Calvin Hill)
  * fsevents: stop using fsevents to watch files (Jameson Nash)
  * win,tty: add uv_tty_{get,set}_vterm_state (erw7)
  * unix: update uv_fs_copyfile() fallback logic (Stefan Bender)
  * win: cast setsockopt struct to const char* (Shelley Vohr)
  * unix: fix {Net,Open}BSD build
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.