From a82cd28eb8899e1fa72ff0585dd5a49dd4ed414b Mon Sep 17 00:00:00 2001 From: wokron Date: Sat, 13 Jun 2026 23:37:47 +0800 Subject: [PATCH 1/4] ci add liburing 2.14 --- .github/workflows/build-and-test-liburing-versions.yml | 2 +- .github/workflows/build-and-test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test-liburing-versions.yml b/.github/workflows/build-and-test-liburing-versions.yml index 47d3cba2..1680ebac 100644 --- a/.github/workflows/build-and-test-liburing-versions.yml +++ b/.github/workflows/build-and-test-liburing-versions.yml @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false matrix: - liburing-version: [ "2.3", "2.6" ] + liburing-version: [ "2.3", "2.14" ] steps: - name: Checkout Repository and Submodules diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 50da10f5..cd170a3e 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -13,7 +13,7 @@ on: - "**.md" env: - LIBURING_VERSION: "2.6" + LIBURING_VERSION: "2.14" jobs: build-and-test: From 05c85e22f57115c799d2f6e2e984b9fc2611632e Mon Sep 17 00:00:00 2001 From: wokron Date: Mon, 29 Jun 2026 11:21:40 +0800 Subject: [PATCH 2/4] try --- tests/test_async_operations.1.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/test_async_operations.1.cpp b/tests/test_async_operations.1.cpp index 5977b0c2..96662ac7 100644 --- a/tests/test_async_operations.1.cpp +++ b/tests/test_async_operations.1.cpp @@ -607,6 +607,10 @@ TEST_CASE("test async_operations - recv bundle provided buffer") { #endif #if !IO_URING_CHECK_VERSION(2, 8) // >= 2.8 +#if defined(__GNUC__) && !defined(__clang__) && defined(__SANITIZE_ADDRESS__) +// Skip: GCC + ASan +// GCC Regression https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124584 +#else TEST_CASE("test async_operations - recv incr and bundle provided buffer") { int sv[2]; create_tcp_socketpair(sv); @@ -660,7 +664,8 @@ TEST_CASE("test async_operations - recv incr and bundle provided buffer") { close(sv[0]); close(sv[1]); } -#endif +#endif // __GNUC__ && !__clang__ && __SANITIZE_ADDRESS__ +#endif // >= 2.8 TEST_CASE("test async_operations - write fixed buffer") { int pipe_fds[2]; From 7cc89ca6b8b452ab321996e7f2115a114ac6b37c Mon Sep 17 00:00:00 2001 From: wokron Date: Mon, 29 Jun 2026 13:26:54 +0800 Subject: [PATCH 3/4] try --- tests/test_async_operations.1.cpp | 15 +++++++-------- tests/test_async_operations.3.cpp | 8 ++++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/tests/test_async_operations.1.cpp b/tests/test_async_operations.1.cpp index 96662ac7..706ba734 100644 --- a/tests/test_async_operations.1.cpp +++ b/tests/test_async_operations.1.cpp @@ -607,10 +607,6 @@ TEST_CASE("test async_operations - recv bundle provided buffer") { #endif #if !IO_URING_CHECK_VERSION(2, 8) // >= 2.8 -#if defined(__GNUC__) && !defined(__clang__) && defined(__SANITIZE_ADDRESS__) -// Skip: GCC + ASan -// GCC Regression https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124584 -#else TEST_CASE("test async_operations - recv incr and bundle provided buffer") { int sv[2]; create_tcp_socketpair(sv); @@ -624,8 +620,10 @@ TEST_CASE("test async_operations - recv incr and bundle provided buffer") { auto func = [&]() -> condy::Coro { condy::ProvidedBufferPool buf_pool(4, 16, IOU_PBUF_RING_INC); - auto [n, bufs] = + auto temp1 = co_await condy::async_recv(sv[0], condy::bundled(buf_pool), 0); + auto& n = temp1.first; + auto& bufs = temp1.second; REQUIRE(n == msg_len); REQUIRE(bufs.size() == 1); REQUIRE(bufs[0].owns_buffer() == false); @@ -636,8 +634,10 @@ TEST_CASE("test async_operations - recv incr and bundle provided buffer") { r = write(sv[1], msg, msg_len); REQUIRE(r == msg_len); - auto [n2, bufs2] = + auto temp2 = co_await condy::async_recv(sv[0], condy::bundled(buf_pool), 0); + auto& n2 = temp2.first; + auto& bufs2 = temp2.second; REQUIRE(n2 == msg_len * 2); REQUIRE(bufs2.size() == 3); // 3 + 16 + 7 REQUIRE(bufs2[0].size() == 3); @@ -664,8 +664,7 @@ TEST_CASE("test async_operations - recv incr and bundle provided buffer") { close(sv[0]); close(sv[1]); } -#endif // __GNUC__ && !__clang__ && __SANITIZE_ADDRESS__ -#endif // >= 2.8 +#endif TEST_CASE("test async_operations - write fixed buffer") { int pipe_fds[2]; diff --git a/tests/test_async_operations.3.cpp b/tests/test_async_operations.3.cpp index f37326dd..e618c766 100644 --- a/tests/test_async_operations.3.cpp +++ b/tests/test_async_operations.3.cpp @@ -780,7 +780,7 @@ TEST_CASE("test async_operations - test recv - bundled multishot") { r = send(sv[1], msg.data(), msg.size() / 4, 0); REQUIRE(r == msg.size() / 4); - auto [n, bufs] = co_await condy::async_recv_multishot( + auto temp1 = co_await condy::async_recv_multishot( sv[0], condy::bundled(pool), 0, [&](auto res) { auto &[n, bufs] = res; REQUIRE(n == 256); @@ -790,6 +790,8 @@ TEST_CASE("test async_operations - test recv - bundled multishot") { r = send(sv[1], msg.data() + count * 256, 256, 0); REQUIRE(r == 256); }); + auto& n = temp1.first; + auto& bufs = temp1.second; // This behavior seems strange... REQUIRE(n == 256); REQUIRE(bufs.size() == 1); @@ -802,10 +804,12 @@ TEST_CASE("test async_operations - test recv - bundled multishot") { REQUIRE(r == msg.size() - count * 256); close(sv[1]); - auto [n2, bufs2] = co_await condy::async_recv_multishot( + auto temp2 = co_await condy::async_recv_multishot( sv[0], condy::bundled(pool), 0, [&](const auto &) { REQUIRE(false); // Should not be called }); + auto& n2 = temp2.first; + auto& bufs2 = temp2.second; REQUIRE(n2 == 512); REQUIRE(bufs2.size() == 2); for (size_t i = 0; i < bufs2.size(); i++) { From 527c749fce61af6f653df7e923ddaf9f3edb64e6 Mon Sep 17 00:00:00 2001 From: wokron Date: Mon, 29 Jun 2026 14:21:36 +0800 Subject: [PATCH 4/4] try --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index cd170a3e..cb272726 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -26,7 +26,7 @@ jobs: compiler: - { cc: clang, cxx: clang++ } - { cc: gcc, cxx: g++ } - build-type: [ Debug, Release ] + build-type: [ Debug, RelWithDebInfo] sanitizer: [ tsan, asan ] steps: @@ -72,6 +72,6 @@ jobs: - name: Run Benchmarks timeout-minutes: 5 - if: matrix.build-type == 'Release' + if: matrix.build-type == 'RelWithDebInfo' working-directory: ${{github.workspace}} run: bash scripts/run-bench.sh -t 60 build/benchmarks