Mooncake/scripts
王鹤男 3a1117bccc
[Build] fix(wheel): exclude libfabric/libefa from auditwheel bundle to avoid dual-libfabric EFA conflict (#2271)
* fix(wheel): exclude libfabric/libefa from auditwheel bundle

The wheel build runs `auditwheel repair`, which by default grafts every
non-excluded shared library the extension links against into the wheel's
`.libs/` directory and rewrites RPATH to prefer the bundled copy. The
exclude list already carves out the system RDMA/EFA stack (libibverbs,
libmlx5, libnuma, libcuda, ...) but missed libfabric and libefa.

As a result a pip-installed wheel ships its own
`mooncake_transfer_engine.libs/libfabric-<hash>.so.1` and `engine.so`
loads that instead of the system `/opt/amazon/efa/lib/libfabric.so.1`.
On AWS EFA hosts this puts two independent libfabric instances in one
process: Mooncake uses the bundled one, while aws-ofi-nccl (loaded by
NCCL) uses the system one. Each instance runs its own `ofi_hmem_init`
and opens EFA devices independently. When Mooncake initializes first it
claims the EFA device context; aws-ofi-nccl's later `fi_getinfo` then
returns "provider efa output empty list" and NCCL silently falls back to
the TCP provider (169.254.170.x), which hangs cross-node collectives
such as `all_gather_object`.

libfabric is the one library that MUST be shared with the system
aws-ofi-nccl plugin, so it has to come from the system just like
libibverbs/libmlx5 already do. Excluding it (and libefa) makes the wheel
load the same libfabric the rest of the EFA stack uses, eliminating the
dual-instance conflict.

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 19:32:57 +08:00
..
ascend [CI] Add release-npu workflow for Ascend NPU release (#2178) 2026-05-22 15:31:07 +08:00
management [CLI] add script for metadata management (#1746) 2026-03-26 13:18:19 +08:00
tone_tests [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
bench_engram_store_27b.py [engram] support engram (#1483) 2026-05-08 19:52:35 +08:00
build_wheel.sh [Build] fix(wheel): exclude libfabric/libefa from auditwheel bundle to avoid dual-libfabric EFA conflict (#2271) 2026-06-01 19:32:57 +08:00
check_hicache_hugepage_requirements.py [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
code_format.sh [Misc] Fix silent failure in `code_format.sh` when clang-format is missing (#1824) 2026-04-06 12:19:26 +08:00
generate_cluster_topology.py [TE] Add TENT codebase to main (Phase 1: structural import) (#1213) 2025-12-22 19:22:13 +08:00
run_tests.sh [Store] L2->L1 promotion-on-hit (#2071) 2026-05-21 15:55:50 +08:00
test_async_store.py [store] add async api (#1265) 2025-12-25 16:46:14 +08:00
test_copy_move_api.py [Store][Feature] copy and move client support (#1364) 2026-02-06 19:02:02 +08:00
test_drain_http_api.py feat(store): expose drain job control via master HTTP API (#1815) 2026-04-09 14:33:45 +08:00
test_engram_store.py [engram] support engram (#1483) 2026-05-08 19:52:35 +08:00
test_hicache_hugepage_requirements.py [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
test_installation.sh [CI] pin torch version to 2.11.0 (#2105) 2026-05-15 17:36:46 +08:00
test_tensor_api.py [Store] Unified parallel tensor IO (#1389) 2026-04-27 23:39:40 +08:00
test_upsert_api.py [Store] Unified parallel tensor IO (#1389) 2026-04-27 23:39:40 +08:00