BUILD: Fix compilation with GCC 16 - #11908
Conversation
|
🤖 Starting review — findings will be posted here when done. |
…efore merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commit 493b319557b5f0a1d05b0d15e5dc7ce4f2ddc2fb)
493b319 to
087470a
Compare
…efore merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commit 087470a)
|
🤖 Starting review — findings will be posted here when done. |
|
Coverage note: This is a build-portability change with no runtime behavior change; it is validated by the existing perftest build/CI as long as CI includes an OpenMP-enabled compiler that emits deprecation warnings for |
…re merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commits 087470a and 4859353) Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
|
🤖 Starting review — findings will be posted here when done. |
|
Scope (no-prefix, non-blocking): this PR bundles an unrelated OpenMP portability fix (perftest.c) with dead-variable cleanup across three gtest files. Per REVIEW.md, refactoring/cleanup should be separate from functional changes. Both parts are trivial, so this is only worth noting, not a blocker — but if the author wants a clean history, splitting is preferable. |
|
🤖 CI Triage Agent — TL;DR: Full analysisSummary: Azure job "new on worker 0" failed with Root cause: Timestamp analysis shows a single ~15-minute silence: the last application line is while (m_am_rx_count == prev_am_rx_count) {
progress();
}The 1 MB AM (rendezvous) sent on Implicated commit: unknown — not caused by commit [REDACTED:Hex High Entropy String] (PR #11908 is build-only); latest change to the test is dad9eb5 (nbellalou, 2026-05-27), which predates and is unrelated. File: test/gtest/ucp/test_ucp_peer_failure.cc:266-268 (hang site); watchdog abort reported at test/gtest/common/test_helpers.cc:57 Suggested fix:
Related: PR #11908 (the triggering PR, unrelated to the failure); no existing issue found for this hang — worth opening one for flaky
|
OpenMP 5.1 renamed the master construct to masked, and GCC 16 (Fedora 44) now rejects the old spelling under -Werror=deprecated-openmp, so ucx_perftest no longer compiles there. Pick the construct from _OPENMP so older compilers keep the spelling they understand. Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
4859353 to
29aa3c1
Compare
…re merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commits 29aa3c1 and 29aa3c1) Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
|
🤖 Starting review — findings will be posted here when done. |
GCC 16 promotes these to errors under -Werror=unused-but-set-variable and the Fedora 44 devel build stops on them. Each counter is only ever incremented; the tests assert on other values. Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
…re merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commits 29aa3c1 and f1bea8d) Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
|
🤖 Review complete — no issues found. |
|
🤖 Starting review — findings will be posted here when done. |
|
🤖 Review complete — no issues found. |
| #if _OPENMP | ||
| # pragma omp barrier | ||
| # pragma omp master | ||
| # if _OPENMP >= 202011 |
There was a problem hiding this comment.
can we always use pragma omp masked ?
There was a problem hiding this comment.
Tried and nope - masked is a new keyword. Older GCC versions don't support it.
…re merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commits 29aa3c1 and f1bea8d) Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
|
🤖 CI Triage Agent — TL;DR: The gtest run on the roce worker aborted because a UMR mkey registration on device Full analysisSummary: Root cause: Evidence chain in the log (12:22:25 test start → 12:22:55, exactly the 30 s poll budget, one silent gap):
The tested change (PR #11908, "BUILD: Fix compilation with GCC 16") touches no UCT/IB or rcache code, and Implicated commit: unknown (no code change in the PR touches this path; last relevant UMR-path commits are a956862 "UCT/IB: Support relaxed-only memory keys" by Roie Danino and b788849 "UCP/DEVICE: Add multi-lane support" by Artemy Kovalyov, which introduced/extended the synchronous UMR post path) File: src/uct/ib/mlx5/dv/ib_mlx5dv_md.c:1441 (UMR poll timeout) and src/ucs/memory/rcache.c:394 (fatal assert during purge); test trigger at test/gtest/ucp/ucp_test.cc:1281 Suggested fix:
Related: PR #11908 (the unrelated build-fix PR under test); no existing issue found for the |
…re merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commits 29aa3c1 and f1bea8d) Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
What?
Make UCX build with GCC 16 (Fedora 44): two source fixes, no behaviour change.
Why?
Fedora 44's GCC 16 turns two things into errors under
-Werror:mastertomasked;-Werror=deprecated-openmprejects the old spelling inucx_perftest.-Werror=unused-but-set-variablenow fires on three gtest counters that are only ever incremented.Seen on both arches in #11906, which adds the Fedora 44 CI rows and depends on this.
How?
src/tools/perf/perftest.c: both#pragma omp mastersites switch ondefined(_OPENMP) && (_OPENMP >= 202011).test/gtest/ucs/test_pgtable.cc,uct/ib/test_ud_pending.cc,uct/test_mem.cc: drop the dead counters; each test asserts on other values.make -kofconfigure-develandconfigure-releasetrees in the Fedora 44 builder image,gcc (GCC) 16.2.1 20260819, clean.test_pgtable.multi_search,test_mem.mmap_fixed/0-3,test_ud_pending.tx_wqeonud_mlx5andud_verbs- and droveucx_perftestthroughrun_ucx_perftest*,run_ucx_perftest_fault_toleranceandrun_ucx_perftest_with_daemon. Those compilers take themasterpath. Themaskedpath was run under GCC 16 in the Fedora 44 image:ucx_perftestclient/server, single-threaded and-T 2, clean; thefedora44rows in CI: Add Fedora 44, Ubuntu 26.10, Azure Linux 4.0, UOS and openEuler 22.03 SP4 / 24.03 SP3 #11906 build it in CI.