Skip to content

fix ambiguous target build system error - #46

Open
grisumbras wants to merge 1 commit into
boostorg:developfrom
grisumbras:fix/build-system-warning
Open

fix ambiguous target build system error#46
grisumbras wants to merge 1 commit into
boostorg:developfrom
grisumbras:fix/build-system-warning

Conversation

@grisumbras

Copy link
Copy Markdown
Member

message rule creates a target, which then conflicts with the alias target. This PR fixes that.

@sdarwin

sdarwin commented Aug 24, 2026

Copy link
Copy Markdown

This bug just affected another end-user, in Slack. Can the PR be merged?

@Becheler

Becheler commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

The red CI on mpich jobs should be fixed by #48 to be merged first.

@jeremy-murphy

Copy link
Copy Markdown
Contributor

Hmmm, I can't seem to rebase or merge develop into the PR myself, so could you please, @grisumbras ?

@grisumbras
grisumbras force-pushed the fix/build-system-warning branch from d281f68 to 6e1f1d4 Compare September 4, 2026 06:47
@Becheler

Becheler commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Looks like it's flaky since the two other mpich jobs passed, and previous CI was green.
So it must depend on what environment the job lands on, maybe relaunching the job another time could "solve" it.

capture-output .../distributed_queue_test-2-run
====== BEGIN OUTPUT ======
[1788504693.438474] [runnervmejwal:7193 :0]  rc_iface.c:513  UCX  ERROR ibv_create_srq() failed: Operation not supported
Abort(205645583) on node 0: Fatal error in internal_Init: Other MPI error, error stack:
internal_Init(48301)..........: MPI_Init(argc=0x7ffcc564d30c, argv=0x7ffcc564d300) failed
MPII_Init_thread(265).........:
MPIR_init_comm_world(34)......:
MPIR_Comm_commit(800).........:
MPIR_Comm_commit_internal(585):
MPID_Comm_commit_pre_hook(151):
MPIDI_world_pre_init(640).....:
MPIDI_UCX_init_world(260).....:
init_worker(38)...............: ucx function returned with failed status(ucx_init.c 38 init_worker Input/output error)

EXIT STATUS: 15
====== END OUTPUT ======

The failing function is MPICH UCX module MPIDI_UCX_init_world

UCX (Unified Communication X) is the communication library that MPICH sits on top of. MPICH handles the MPI logic (ranks, sends, receives), but the actual job of moving bytes between processes is delegated to UCX. By default, UCX picks the transport layers itself, so UCX tried to auto-detect the fastest transport layer available, detected InfiniBand (ibv), tried to use it, and crashed because the hardware isn't there:
ibv_create_srq() failed: Operation not supported

UCX_TLS is the setting that overrides UCX's auto-detection: see https://github.com/openucx/ucx/wiki/UCX-environment-parameters

  • The test we need to support is mpirun -np 2 ./test
  • So we must support two processes on the same machine (P0, P1), and their communication patterns:
  • self should allow those two patterns:
    • P0 → P0 (process talking to itself)
    • P1 → P1 (process talking to itself)
  • sm (shared memory) should cover those:
    • P0 → P1 (two processes, same machine)
    • P1 → P0 (two processes, same machine)
  • tcp: allows a quiet fallback if sm ever fails to work properly (because of sandboxing or whatever). I am not sure if it's strictly necessary or over-careful

Looks like add this env variable could solve it:

  ubuntu:
    runs-on: ubuntu-latest
    env:
      UCX_TLS: tcp,self,sm 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants