Mooncake/docs/source
王鹤男 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
..
_static [DOC] feat(docs): build documentation website for Mooncake using Sphinx (#354) 2025-05-12 23:33:18 +08:00
community [Doc] Add goverance doc (#1352) 2026-01-09 18:53:25 -08:00
deployment [Store] Clarify cache stats semantics (#2248) 2026-05-28 21:03:07 +08:00
design [Build] fix(wheel): exclude libfabric/libefa from auditwheel bundle to avoid dual-libfabric EFA conflict (#2271) 2026-06-01 19:32:57 +08:00
getting_started [Doc] Split LMCache vLLM MP and non-MP guides (#2268) 2026-05-29 17:35:22 +08:00
http-api-reference [Docs]: fix docs config, remove autodoc2, archive zh docs (#2218) 2026-05-26 15:29:37 +08:00
image [Docs] Add SSD offload benchmark results (#1835) 2026-04-13 15:52:52 +08:00
performance [Docs]: fix docs config, remove autodoc2, archive zh docs (#2218) 2026-05-26 15:29:37 +08:00
python-api-reference Fix P2PHANDSHAKE in dual-NIC container setups via MC_RDMA_BIND_ADDRESS (#2280) 2026-06-01 16:49:58 +08:00
troubleshooting [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
zh_archive Fix P2PHANDSHAKE in dual-NIC container setups via MC_RDMA_BIND_ADDRESS (#2280) 2026-06-01 16:49:58 +08:00
autodoc2_docstring_parser.py [DOC] feat(docs): build documentation website for Mooncake using Sphinx (#354) 2025-05-12 23:33:18 +08:00
conf.py [Docs]: fix docs config, remove autodoc2, archive zh docs (#2218) 2026-05-26 15:29:37 +08:00
index.md [Docs]: fix docs config, remove autodoc2, archive zh docs (#2218) 2026-05-26 15:29:37 +08:00