Repository navigation
Conversation
libucm_rocm doesn't link libucs, so when UCX is loaded with RTLD_LOCAL the hook-install warning crashes with an undefined symbol. Print the status code instead.
|
🤖 Starting review — findings will be posted here when done. |
|
If there was a concrete build or load-order problem motivating the switch from |
tvegas1
left a comment
There was a problem hiding this comment.
can we also add the rule to the ucm entry in src/AGENTS.md so agents don't reintroduce this, like below?
- `ucm`: ... UCM libraries must not link or call into `libucs`; use UCS
headers only for macros and inline functions.
tvegas1
left a comment
There was a problem hiding this comment.
need to fix also cudamem.c
libucm_rocm and libucm_cuda don't link libucs, so when UCX is loaded with RTLD_LOCAL the hook-install log messages crash with an undefined symbol. Print the status code instead, add a CI check for undefined ucs_ symbols in UCM modules, and document the rule in src/AGENTS.md.
|
🤖 Starting review — findings will be posted here when done. |
|
@tvegas1 @edgargabriel PTAL |
|
Residual coverage gap worth noting: there is no test that reproduces the original failure (UCX loaded via |
|
we need to backport this to v1.23.x probably as well |
|
🤖 CI Triage Agent — TL;DR: The ASAN BlueField gtest shard hung (not timed out from slowness) in Full analysisSummary: Azure job "AddressSanitizer BlueField on worker 2" (build 142538) failed in Root cause: A hang, not a wall-clock shortage. Log timestamps show the test started at 13:55:30 and the next line is at 14:06:46 (~11 min of total silence), then another ~11 min gap to 14:18:02, then the global abort at 14:21:46 — i.e. continuous no-progress, with The code path that can produce exactly this state is the TX credit reservation added by
Consequently, if the ep has no outstanding signaled WQE left (TX moderation / everything already completed), no CQE will ever arrive, the reserve is never cleared, every subsequent atomic/flush returns The PR under test ( Implicated commit: 22cff74 — "UCT/RC: Reserve TX credits for multi-credit sends (#11841)", Michal Shalev (PR HEAD 3f99905 by Sai Ankith Averineni is log-only and not implicated) File: src/uct/ib/rc/base/rc_ep.h:375-435 (reserve set/test, Suggested fix:
Related: PR #11841 (UCT/RC: Reserve TX credits for multi-credit sends), backport PR #12222, PR #12228 (the branch under test — log-only UCM change) |
|
@tvegas1 I think the CI is stuck on this P, its running now for more than a day just in the last two checks |
|
After checking it's still in the queue as there is load currently, suggest to keep waiting for now. |
What
ucs_status_string()insrc/ucm/rocm/rocmmem.candsrc/ucm/cuda/cudamem.c.check_ucm_no_ucs_symbolstobuildlib/az-helpers.shand run it after the build inbuildlib/pr/rocm/test_malloc_hook.shandbuildlib/pr/cuda/test_malloc_hook.sh: it fails if aUCM module (
libucm_*.so) has an undefineducs_*symbol.ucmentry ofsrc/AGENTS.md.Why
UCM modules link only
libucm. When UCX is loaded withRTLD_LOCAL(for example as an applicationplugin),
libucsis not in their scope, so logging throughucs_status_string()kills the process:Since #11887 this happens on every start when the bistro hook for the HSA allocator can't be
installed and UCX falls back to reloc hooks, because that path logs a warning. One such case is the
HSA runtime bundled with the PyTorch ROCm wheel.
libucm_cudahas the same call on aucm_diagpath (#8092).
The check covers only the modules:
libucm.soitself referencesucs_load_modulesanducs_sys_is_dynamic_lib, which is fine because it is loaded together withlibucs.Testing
the warning is printed and the reloc hooks are installed.
contrib/configure-develas in the CI script:check_ucm_no_ucs_symbolspasses;with the two UCM files reverted to master it fails on
ucs_status_string.