Commit Graph

4025 Commits

Author SHA1 Message Date
cjihrig
e540f80ff2
Add SHA to ChangeLog 2018-04-22 13:58:19 -04:00
cjihrig
c51fd3f66b
2018.04.23, Version 1.20.2 (Stable)
Changes since version 1.20.1:

* zos: use custom semaphore (jBarz)

* win: fix registry API error handling (Kyle Farnung)

* build: add support for 64-bit AIX (Richard Lau)

* aix: guard STATIC_ASSERT for glibc work around (Richard Lau)
2018-04-22 13:58:18 -04:00
Richard Lau
56220e5b79
aix: guard STATIC_ASSERT for glibc work around
On 64-bit AIX `sizeof(uv_sem_t)` is 4 bytes which is not large
enough to store a pointer. AIX doesn't use glibc so the work around
introduced by https://github.com/libuv/libuv/pull/1795 doesn't
apply, so guard the STATIC_ASSERT so that it is only used when the
custom semaphore implementation is used.

Refs: https://github.com/nodejs/node/pull/20129
Refs: https://github.com/libuv/libuv/pull/1795
PR-URL: https://github.com/libuv/libuv/pull/1808
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-21 21:30:47 -04:00
Richard Lau
4f77a23615
build: add support for 64-bit AIX
Pass -Dtarget_arch=ppc64 to gyp_uv.py to activate.

Refs: https://github.com/nodejs/node/pull/20129
Refs: https://github.com/libuv/libuv/pull/1795
PR-URL: https://github.com/libuv/libuv/pull/1807
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-21 21:09:51 -04:00
Kyle Farnung
0aa6de6deb
win: fix registry API error handling
The Reg* APIs on Windows don't use GetLastError() to report
failures. The errors are returned directly from the call.

For systems which don't have one of the values GetLastError() can
end up returning 0 to the caller, indicating success. The caller
then assumes that the data is valid and can attempt to execute on
garbage data. This change fixes the flow to correctly return the
error to the caller.

PR-URL: https://github.com/libuv/libuv/pull/1811
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-21 21:04:37 -04:00
John Barboza
1e4823ca99 zos: use custom semaphore
The System V semaphores on z/OS require explicit ending of the worker
threads and cleanup at process exit. The user will have to manually
cleanup these resources that are left behind. Instead use the custom
semaphore implementation which uses posix mutexes and condition
variables which are cleaned up automatically on process exit.

PR-URL: https://github.com/libuv/libuv/pull/1805
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-04-18 22:24:37 +02:00
cjihrig
d61d6f326c
Now working on version 1.20.2
Fixes: https://github.com/libuv/libuv/issues/1801
2018-04-18 09:21:49 -04:00
cjihrig
c5ef076708
Add SHA to ChangeLog 2018-04-18 09:18:44 -04:00
cjihrig
36ac2fc8ed
2018.04.19, Version 1.20.1 (Stable)
Changes since version 1.20.0:

* doc,fs: improve documentation (Bob Burger)

* win: return a floored double from uv_uptime() (Refael Ackermann)

* doc: clarify platform specific pipe naming (Thomas Versteeg)

* unix: fix uv_pipe_chmod() on macOS (zzzjim)

* unix: work around glibc semaphore race condition (Anna Henningsen)

* tcp,openbsd: disable Unix TCP check for IPV6_ONLY (Alex Arslan)

* test,openbsd: use RETURN_SKIP in UDP IPv6 tests (Alex Arslan)

* test,openbsd: fix multicast test (Alex Arslan)

* Revert "win, fs: use FILE_WRITE_ATTRIBUTES when opening files"
  (cjihrig)
2018-04-18 09:18:43 -04:00
cjihrig
1954e9e3c1
Revert "win, fs: use FILE_WRITE_ATTRIBUTES when opening files"
This reverts commit aa1beaa07c.
This commit was causing EPERM errors in Node.js.

Fixes: https://github.com/nodejs/node/issues/20112
PR-URL: https://github.com/libuv/libuv/pull/1800
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2018-04-18 09:01:51 -04:00
Alex Arslan
0aa4ed0d0a
test,openbsd: fix multicast test
Use the same code path as other BSDs.

Upstreamed from the OpenBSD Ports Collection.

PR-URL: https://github.com/libuv/libuv/pull/1797
Reviewed-By: Aaron Bieber <deftly@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-04-17 11:49:02 +02:00
Alex Arslan
992a13df9b
test,openbsd: use RETURN_SKIP in UDP IPv6 tests
IPv6-IPv4 dual stack is not supported on OpenBSD.

Upstreamed from the OpenBSD Ports Collection.

PR-URL: https://github.com/libuv/libuv/pull/1797
Reviewed-By: Aaron Bieber <deftly@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-04-17 11:48:55 +02:00
Alex Arslan
48b8c11876
tcp,openbsd: disable Unix TCP check for IPV6_ONLY
OpenBSD does not support setting IPV6_ONLY to anything but 1; OpenBSD
does not support IPv4-mapped IPv6 addresses.

Upstreamed from OpenBSD Ports Collection.

PR-URL: https://github.com/libuv/libuv/pull/1797
Reviewed-By: Aaron Bieber <deftly@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-04-17 11:48:48 +02:00
Anna Henningsen
fbd6de31be
unix: work around glibc semaphore race condition
Hack around https://sourceware.org/bugzilla/show_bug.cgi?id=12674
by providing a custom implementation for glibc < 2.21 in terms of other
concurrency primitives.

The glibc implementation on these versions is inherently unsafe.
So, while libuv and Node.js support those versions, it seems to make
sense for libuv in its functionality as a platform abstraction library
to provide a working version.

Fixes: https://github.com/nodejs/node/issues/19903
PR-URL: https://github.com/libuv/libuv/pull/1795
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-04-17 11:42:32 +02:00
zzzjim
19855c03ba
unix: fix uv_pipe_chmod() on macOS
According to its man page, there is a bug in fstat()
on macOS related to pipes. This commit replaces a
fstat() call in uv_pipe_chmod() with a stat() call in
order to get the correct permissions.

PR-URL: https://github.com/libuv/libuv/pull/1635
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-04-12 09:15:15 -04:00
Thomas Versteeg
9afb013574
doc: clarify platform specific pipe naming
Pipe naming conventions differ on Windows and Unix. This
commit calls out the naming conventions and requirements.

PR-URL: https://github.com/libuv/libuv/pull/1765
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2018-04-07 14:26:26 -04:00
Refael Ackermann
61a8d97ad9
win: return a floored double from uv_uptime()
This makes Windows consistent with other platforms.

Refs: https://github.com/libuv/libuv/issues/1295
Fixes: https://github.com/libuv/libuv/issues/1294
PR-URL: https://github.com/libuv/libuv/pull/1296
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-07 08:43:00 -04:00
Bob Burger
1d1287d764
doc,fs: improve documentation
Update description of `uv_fs_readlink` and `uv_fs_realpath` to describe
where the resulting string goes.

Fixes: https://github.com/libuv/libuv/issues/1771
PR_URL: https://github.com/libuv/libuv/pull/1786
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-04-06 08:53:30 +02:00
cjihrig
00d13c5b9f
Now working on version 1.20.1
Fixes: https://github.com/libuv/libuv/issues/1785
2018-04-02 13:25:33 -04:00
cjihrig
d06e33f305
Add SHA to ChangeLog 2018-04-02 13:23:59 -04:00
cjihrig
0012178ee2
2018.04.03, Version 1.20.0 (Stable)
Changes since version 1.19.2:

* unix,spawn: respect user stdio flags for new pipe (Jameson Nash)

* Revert "Revert "unix,tcp: avoid marking server sockets connected""
  (Jameson Nash)

* req: revisions to uv_req_t handling (Jameson Nash)

* win: remove unnecessary initialization (cjihrig)

* win: update uv_os_homedir() to use uv_os_getenv() (cjihrig)

* test: fix tcp_oob test flakiness (Santiago Gimeno)

* posix: fix uv__pollfds_del() for invalidated fd's (Jesse Gorzinski)

* doc: README: add note on installing gyp (Jamie Davis)

* unix: refactor uv_os_homedir to use uv_os_getenv (Santiago Gimeno)

* unix: fix several instances of lost errno (Michael Kilburn)

* win,tty: update several TODO comments (Ruslan Bekenev)

* unix: add UV_FS_COPYFILE_FICLONE support (cjihrig)

* test: fix connect_unspecified (Santiago Gimeno)

* unix,win: add UV_FS_COPYFILE_FICLONE_FORCE support (cjihrig)

* win: use long directory name for handle->dirw (Nicholas Vavilov)

* build: build with -D_FILE_OFFSET_BITS=64 again (Ben Noordhuis)

* win, fs: fix uv_fs_unlink for +R -A files (Bartosz Sosnowski)

* win, fs: use FILE_WRITE_ATTRIBUTES when opening files (Bartosz
  Sosnowski)

* unix: use __PASE__ on IBM i platforms (Jesse Gorzinski)

* test,freebsd: fix flaky poll tests (Santiago Gimeno)

* test: increase connection timeout to 1 second (jBarz)

* win,tcp: handle canceled connect with ECANCELED (Jameson Nash)
2018-04-02 13:23:58 -04:00
Jameson Nash
5074a57989
win,tcp: handle canceled connect with ECANCELED
This aligns Windows behavior with Unix.

Refs: https://github.com/JuliaLang/julia/pull/26545
PR-URL: https://github.com/libuv/libuv/pull/1783
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-02 11:00:55 -04:00
John Barboza
67a00e27c1
test: increase connection timeout to 1 second
The previous timeout of 1 millisecond could lead to intermittent
failures. Increase it to 1 second to be on the safe side.

PR-URL: https://github.com/libuv/libuv/pull/1776
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-31 17:05:26 -04:00
Santiago Gimeno
9051126b56
test,freebsd: fix flaky poll tests
On FreeBSD `close()` can fail with `ECONNRESET` if the socket was
shutdown by the peer before all pending data was delivered.

PR-URL: https://github.com/libuv/libuv/pull/1780
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-31 16:59:41 -04:00
ThePrez
7f85924e8b
unix: use __PASE__ on IBM i platforms
IBM i compilers now predefine __PASE__. This commit updates
code to rely on that rather than manually setting (or relying on)
a _PASE definition.

PR-URL: https://github.com/libuv/libuv/pull/1782
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-03-31 16:41:53 -04:00
Bartosz Sosnowski
aa1beaa07c win, fs: use FILE_WRITE_ATTRIBUTES when opening files
This allows for running uv_fs_fchmod on files with Archive flag cleared

Refs: https://github.com/nodejs/node/issues/12803
PR-URL: https://github.com/libuv/libuv/pull/1777
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-29 10:54:18 +02:00
Bartosz Sosnowski
edf05b97f0 win, fs: fix uv_fs_unlink for +R -A files
uv_fs_unlink would fail for read-only files with Archive attribute
cleared. This fixes this issue.

PR-URL: https://github.com/libuv/libuv/pull/1774
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-03-21 14:03:00 +01:00
Ben Noordhuis
ee875f9d05 build: build with -D_FILE_OFFSET_BITS=64 again
Faulty logic in commit fdf7c2a ("build: split off tests into separate
gyp file") accidentally disabled `-D_FILE_OFFSET_BITS=64` on Unices,
breaking file operations on files > 2 GB on 32 bits platforms.

Fixes: https://github.com/nodejs/node/issues/19455
PR-URL: https://github.com/libuv/libuv/pull/1779
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-03-21 10:27:50 +01:00
Nikolai Vavilov
7e865b680a win: use long directory name for handle->dirw
`uv_relative_path` assumes `dir` is a prefix of `filename`, which is not
the case when `handle->dirw` is a short path.

Refs: https://github.com/nodejs/node/issues/19170
PR-URL: https://github.com/libuv/libuv/pull/1769
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2018-03-19 10:20:56 +01:00
cjihrig
3ae88200d6
unix,win: add UV_FS_COPYFILE_FICLONE_FORCE support
UV_FS_COPYFILE_FICLONE_FORCE attempts to use copy-on-write
semantics in uv_fs_copyfile(). If CoW is not available, an
error is returned.

Refs: https://github.com/libuv/libuv/pull/1465
Refs: https://github.com/libuv/libuv/pull/1491
PR-URL: https://github.com/libuv/libuv/pull/1768
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-03-16 01:00:43 -04:00
Santiago Gimeno
36671bf32c
test: fix connect_unspecified
So it passes on boxes without ipv6 support.

Fixes: https://github.com/libuv/libuv/issues/1766
PR-URL: https://github.com/libuv/libuv/pull/1767
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-08 11:37:00 +01:00
cjihrig
db918361eb
unix: add UV_FS_COPYFILE_FICLONE support
UV_FS_COPYFILE_FICLONE attemps to use copy-on-write
semantics in uv_fs_copyfile(). If CoW is not available,
it falls back to a normal copy operation.

Refs: https://github.com/libuv/libuv/pull/1465
PR-URL: https://github.com/libuv/libuv/pull/1491
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-03-05 10:18:30 -05:00
Ruslan Bekenev
cb1acaa46f
win,tty: update several TODO comments
uv_process_tty_accept_req() and uv_process_tty_connect_req()
are marked with "TODO: remove me" comments. This commit
updates the comments to give a better explanation of why
they exist.

PR-URL: https://github.com/libuv/libuv/pull/1335
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-05 09:04:47 -05:00
Michael Kilburn
9ed3ed5fcb
unix: fix several instances of lost errno
This commit preserves errno properly in the following cases:

- new_socket() was previously discarding errno in some cases,
  and replacing it with the result of getsockname().
- uv__close() was not preserving errno when __MVS__ is defined.

Fixes: https://github.com/libuv/libuv/issues/1756
PR-URL: https://github.com/libuv/libuv/pull/1763
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-03 11:03:41 -05:00
Santiago Gimeno
b7f649d308
unix: refactor uv_os_homedir to use uv_os_getenv
PR-URL: https://github.com/libuv/libuv/pull/1760
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-03-03 10:56:48 -05:00
Jamie Davis
f60713f7cf
doc: README: add note on installing gyp
Problem:
The instructions assume you have already installed gyp to
build/gyp.

If you run 'make' without doing so, it asks you to read the README,
which does not actually tell you about installing gyp.

Solution:
Add a one-liner `git clone` command to the setup instructions.

PR-URL: https://github.com/libuv/libuv/pull/1712
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2018-02-28 22:29:00 +01:00
ThePrez
875ce430a2
posix: fix uv__pollfds_del() for invalidated fd's
Fix bug in `uv__pollfds_del()` where only one invalidated fd is purged.
Calls to `uv__platform_invalidate_fd()` will invalidate descriptors
(rather than removing them) when `poll()` is iterating. Under stressful
conditions, this may happen more frequently than `uv__pollfds_del()` is
called. So, when uv__pollfds_del() is called with a value of -1, it
should iterate the entire array to remove all invalidated descriptors.

PR-URL: https://github.com/libuv/libuv/pull/1738
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-02-28 22:01:41 +01:00
Santiago Gimeno
d6dadc0739
test: fix tcp_oob test flakiness
`EAGAIN` is an acceptable return value for `read()` and the test was not
taking it into account.

Fixes: https://github.com/libuv/libuv/issues/1602
PR-URL: https://github.com/libuv/libuv/pull/1759
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-02-28 21:58:56 +01:00
cjihrig
502decd620
win: update uv_os_homedir() to use uv_os_getenv()
This commit refactors uv_os_homedir() to to use uv_os_getenv()
to retrieve the USERPROFILE environment variable. This removes
a fair amount of duplicated code, while introducing the following
changes:

1. The function no longer returns UV_EIO when USERPROFILE is
   longer than MAX_PATH. This can be reinstated by adding a
   check for r == 0 && *size >= MAX_PATH.
2. The USERPROFILE string is now a char*, meaning that it must
   be converted from utf8 to utf16 by uv_os_getenv().

Refs: https://github.com/libuv/libuv/pull/1760
PR-URL: https://github.com/libuv/libuv/pull/1761
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-02-27 09:19:03 -05:00
cjihrig
acbeb5fb3c
win: remove unnecessary initialization
There is no need to set req->fs.info.bufs to NULL and then
memset() the entire req->fs struct on the next line.

Refs: https://github.com/libuv/libuv/pull/1752#discussion_r169953154
PR-URL: https://github.com/libuv/libuv/pull/1762
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-02-26 11:56:17 -05:00
Jameson Nash
88c2af0e65
req: revisions to uv_req_t handling
- Remove the `active_reqs` queue, which is never used. There are more
   efficient per-stream queues that `libuv` uses whenever it needs this
   information, so duplicating it and managing it here seems
   like unnecessary extra space and work.
 - Unix `uv_loop_init` didn't explicitly initialize.
   `loop->active_handles` (although it did memset the whole struct
   to 0, so it wasn't wrong previously, just inconsistent).
 - Consolidate repeated code for `uv__has_active_reqs`.
 - Change `uv__loop_alive` to use the helper functions (mirroring the
   unix copy of the same function).
 - Initialize some more uv_stream_t fields in init, rather than waiting
   for the connection callback. This helps surface bugs in libuv or the
   caller better, since it ensures libuv doesn't see uninitialized
   memory if asked to look at these fields before it thinks the socket
   is connected.
 - Fixes what appears to be a double-counting of `handle->reqs_pending`,
   in the highly-unlikely event that the code wants to emulate IOCP,
   but `RegisterWaitForSingleObject` somehow managed to fail.

PR-URL: https://github.com/libuv/libuv/pull/1746
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-02-25 18:49:37 +01:00
Jameson Nash
8f9ba2a597
Revert "Revert "unix,tcp: avoid marking server sockets connected""
This reverts commit 2098773243.

PR-URL: https://github.com/libuv/libuv/pull/1741
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-02-25 18:45:05 +01:00
Jameson Nash
c409b3fcff
unix,spawn: respect user stdio flags for new pipe
`UV_READABLE_PIPE` and `UV_WRITABLE_PIPE` flags should be honored on
unices.
Windows is better about already doing this, so this will make the
behavior of these flags more consistent across platforms.
It also is just better to set these flags to reflect the actual
mode of the stream, rather than guessing at it based on typical usage.

Refs: https://github.com/libuv/libuv/pull/1655
Refs: https://github.com/nodejs/node/pull/18701
PR-URL: https://github.com/libuv/libuv/pull/1741
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-02-25 18:43:34 +01:00
cjihrig
cef8a4624b
Now working on version 1.19.3
Fixes: https://github.com/libuv/libuv/issues/1750
2018-02-21 15:29:40 -05:00
cjihrig
c653d94f53
Add SHA to ChangeLog 2018-02-21 15:25:39 -05:00
cjihrig
c5afc37e2a
2018.02.22, Version 1.19.2 (Stable)
Changes since version 1.19.1:

* test: fix incorrect asserts (cjihrig)

* test: fix a typo in test-fork.c (Felix Yan)

* build: remove long-obsolete gyp workarounds (Ben Noordhuis)

* build: split off tests into separate gyp file (Ben Noordhuis)

* test: check uv_cond_timedwait more carefully (Jamie Davis)

* include,src: introduce UV__ERR() macro (Mason X)

* build: add url field to libuv.pc (Ben Noordhuis)

* doc: mark IBM i as Tier 3 support (Jesse Gorzinski)

* win,build: correct C2059 errors (Michael Fero)

* zos: fix timeout for condition variable (jBarz)

* win: CREATE_NO_WINDOW when stdio is not inherited (Nick Logan)

* build: fix commmon.gypi comment (Ryuichi KAWAMATA)

* doc: document uv_timer_start() on an active timer (Vladimír Čunát)

* doc: add note about handle movability (Bartosz Sosnowski)

* doc: fix syntax error in loop documentation (Bartosz Sosnowski)

* osx,stream: retry sending handle on EMSGSIZE error (Santiago Gimeno)

* unix: delay fs req register until after validation (cjihrig)

* test: add tests for bad inputs (Joyee Cheung)

* unix,win: ensure req->bufs is freed (cjihrig)

* test: add additional fs memory management checks (cjihrig)
2018-02-21 15:25:38 -05:00
cjihrig
c1ecaf7b43
test: add additional fs memory management checks
This commit adds checks for fs request values when a call
fails with UV_EINVAL.

PR-URL: https://github.com/libuv/libuv/pull/1752
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-02-21 15:03:10 -05:00
cjihrig
1167ec3f47
unix,win: ensure req->bufs is freed
This commit ensures that req->bufs (req->fs.info.bufs on Windows)
is initialized to NULL in INIT and freed, if necessary, in
uv_fs_req_cleanup().

Refs: https://github.com/libuv/libuv/pull/1751#discussion_r169645330
PR-URL: https://github.com/libuv/libuv/pull/1752
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-02-21 15:01:52 -05:00
Joyee Cheung
e485d28674
test: add tests for bad inputs
This commit adds tests that pass bad options to uv_fs_copyfile(),
uv_fs_read(), and uv_fs_write(). These tests verify that the
asynchronous version of these functions do not hold the event
loop open on bad inputs.

Refs: https://github.com/nodejs/node/pull/18811
PR-URL: https://github.com/libuv/libuv/pull/1747
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-02-21 09:58:07 -05:00
cjihrig
dab311afe9
unix: delay fs req register until after validation
On Unix, if a fs function fails validation after INIT but
before sending the work to the thread pool, then is is
necessary to manually unregister the request. This commit
moves the registration to just before the work submission.
This also makes Unix match the Windows behavior.

Refs: https://github.com/libuv/libuv/pull/1747
Refs: https://github.com/nodejs/node/pull/18811
PR-URL: https://github.com/libuv/libuv/pull/1751
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-02-21 09:45:27 -05:00