diff --git a/.gitignore b/.gitignore index bcbacb4..8f6f7ec 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /libuv-v1.26.0.tar.gz /libuv-v1.27.0.tar.gz /libuv-v1.28.0.tar.gz +/libuv-v1.29.0.tar.gz diff --git a/2288.patch b/2288.patch deleted file mode 100644 index eccd400..0000000 --- a/2288.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 7a35cbab6847a9fd7decc3c47dcccdc22ef59408 Mon Sep 17 00:00:00 2001 -From: Anna Henningsen -Date: Fri, 3 May 2019 18:33:13 +0200 -Subject: [PATCH] unix,win: fix `uv_fs_poll_stop()` when active -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix `uv_fs_poll_stop()` for active handles by not attempting to -mark the `uv_fs_poll_t` handle as closing when `uv_close()` -hasn’t been called on it. - -Fixes: https://github.com/libuv/libuv/issues/2287 -Refs: https://github.com/libuv/libuv/pull/1875 ---- - src/fs-poll.c | 2 +- - test/test-fs-poll.c | 39 +++++++++++++++++++++++++++++++++++++++ - test/test-list.h | 2 ++ - 3 files changed, 42 insertions(+), 1 deletion(-) - -diff --git a/src/fs-poll.c b/src/fs-poll.c -index 40cb147e8d..89864e23fb 100644 ---- a/src/fs-poll.c -+++ b/src/fs-poll.c -@@ -241,7 +241,7 @@ static void timer_close_cb(uv_handle_t* timer) { - handle = ctx->parent_handle; - if (ctx == handle->poll_ctx) { - handle->poll_ctx = ctx->previous; -- if (handle->poll_ctx == NULL) -+ if (handle->poll_ctx == NULL && uv__is_closing(handle)) - uv__make_close_pending((uv_handle_t*)handle); - } else { - for (last = handle->poll_ctx, it = last->previous; -diff --git a/test/test-fs-poll.c b/test/test-fs-poll.c -index e19a68780f..9dfd5fdd6a 100644 ---- a/test/test-fs-poll.c -+++ b/test/test-fs-poll.c -@@ -37,6 +37,10 @@ static void poll_cb_fail(uv_fs_poll_t* handle, - int status, - const uv_stat_t* prev, - const uv_stat_t* curr); -+static void poll_cb_noop(uv_fs_poll_t* handle, -+ int status, -+ const uv_stat_t* prev, -+ const uv_stat_t* curr); - - static uv_fs_poll_t poll_handle; - static uv_timer_t timer_handle; -@@ -84,6 +88,12 @@ static void poll_cb_fail(uv_fs_poll_t* handle, - ASSERT(0 && "fail_cb called"); - } - -+static void poll_cb_noop(uv_fs_poll_t* handle, -+ int status, -+ const uv_stat_t* prev, -+ const uv_stat_t* curr) { -+} -+ - - static void poll_cb(uv_fs_poll_t* handle, - int status, -@@ -259,3 +269,32 @@ TEST_IMPL(fs_poll_close_request_multi_stop_start) { - MAKE_VALGRIND_HAPPY(); - return 0; - } -+ -+TEST_IMPL(fs_poll_close_request_stop_when_active) { -+ /* Regression test for https://github.com/libuv/libuv/issues/2287. */ -+ uv_loop_t loop; -+ uv_fs_poll_t poll_handle; -+ -+ remove(FIXTURE); -+ -+ ASSERT(0 == uv_loop_init(&loop)); -+ -+ /* Set up all handles. */ -+ ASSERT(0 == uv_fs_poll_init(&loop, &poll_handle)); -+ ASSERT(0 == uv_fs_poll_start(&poll_handle, poll_cb_noop, FIXTURE, 100)); -+ uv_run(&loop, UV_RUN_ONCE); -+ -+ /* Close the timer handle, and do not crash. */ -+ ASSERT(0 == uv_fs_poll_stop(&poll_handle)); -+ uv_run(&loop, UV_RUN_ONCE); -+ -+ /* Clean up after the test. */ -+ uv_close((uv_handle_t*) &poll_handle, close_cb); -+ uv_run(&loop, UV_RUN_ONCE); -+ ASSERT(close_cb_called == 1); -+ -+ ASSERT(0 == uv_loop_close(&loop)); -+ -+ MAKE_VALGRIND_HAPPY(); -+ return 0; -+} -diff --git a/test/test-list.h b/test/test-list.h -index cf5420adfb..c090854bc5 100644 ---- a/test/test-list.h -+++ b/test/test-list.h -@@ -290,6 +290,7 @@ TEST_DECLARE (fs_poll_getpath) - TEST_DECLARE (fs_poll_close_request) - TEST_DECLARE (fs_poll_close_request_multi_start_stop) - TEST_DECLARE (fs_poll_close_request_multi_stop_start) -+TEST_DECLARE (fs_poll_close_request_stop_when_active) - TEST_DECLARE (kill) - TEST_DECLARE (kill_invalid_signum) - TEST_DECLARE (fs_file_noent) -@@ -844,6 +845,7 @@ TASK_LIST_START - TEST_ENTRY (fs_poll_close_request) - TEST_ENTRY (fs_poll_close_request_multi_start_stop) - TEST_ENTRY (fs_poll_close_request_multi_stop_start) -+ TEST_ENTRY (fs_poll_close_request_stop_when_active) - TEST_ENTRY (kill) - TEST_ENTRY (kill_invalid_signum) - diff --git a/libuv.spec b/libuv.spec index f07bd17..f8982fc 100644 --- a/libuv.spec +++ b/libuv.spec @@ -1,7 +1,7 @@ Name: libuv Epoch: 1 -Version: 1.28.0 -Release: 2%{?dist} +Version: 1.29.0 +Release: 1%{?dist} Summary: Platform layer for node.js # the licensing breakdown is described in detail in the LICENSE file @@ -13,9 +13,6 @@ Source2: %{name}.pc.in BuildRequires: autoconf automake libtool BuildRequires: gcc -# Upstream patch for BZ#1703935 -Patch0001: 2288.patch - %description libuv is a new platform layer for Node. Its purpose is to abstract IOCP on Windows and libev on Unix systems. We intend to eventually contain all platform @@ -71,6 +68,10 @@ rm -f %{buildroot}%{_libdir}/libuv.la %{_libdir}/%{name}.a %changelog +* Wed May 15 2019 Stephen Gallagher - 1.29.0-1 +- Update to 1.29.0 +- Drop upstreamed patch + * Fri May 03 2019 Stephen Gallagher - 1.28.0-2 - Fix regression in uv_fs_poll_stop() (BZ 1703935) diff --git a/sources b/sources index e20e594..9dff107 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libuv-v1.28.0.tar.gz) = d7f635ab99569e96db9ae97d29a302f5eec1fd75c71b035ec597a6b978a3fc797a37c7406fed81a27d4d706fe21cbfe919d829d6dae67399cd5cddd107ad6949 +SHA512 (libuv-v1.29.0.tar.gz) = 52b22574842d8f3f98f796ecb5b909acca2ab4200a54129644f0994978ce19ec3e36d785bc1bc30096ad14e54564321cb1f57df43f6a36b3267fda44fc2a7ae7