mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[GH-ISSUE #4072] [Bug] -DUSE_NOF=ON build and NoF e2e do not work out of the box on Ubuntu #1033
Labels
No labels
ascend
auto-closed
bug
bug
CI/Build
Common
documentation
enhancement
feature request
good first issue
help wanted
high priority
MetaX
nightly-failure
pull-request
PyTorch Backend
question
RFC
Roadmap
stale
Store
Tests
Transfer Engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/Mooncake#1033
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Ziy1-Tan on GitHub (Sep 13, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/4072
Summary
A
USE_NOFbuild cannot be produced or exercised out of the box by following the documented build path (docs/source/getting_started/build.md). On a clean Ubuntu 22.04 machine the documented steps fail at four separate points, all of them missing build/dependency wiring.Status
Addressed by #4079 (pending merge), with the latest dependency-scoping commit
c3308edb(Ubuntu 22.04.5, gcc 11.4.0, cmake 3.22.1, SPDK v23.01.1 built bydependencies.sh --with-spdk):--with-rdma requires libverbs and librdmacmdependencies.sh --with-spdknow invokes SPDK'spkgdep.sh --rdma, which installslibrdmacm-devwithout changing the common dependency listcannot find -lisal,cannot find -lelflibelf-devis installed in the Ubuntu/DebianINSTALL_SPDKbranch for-lelf; isa-l is taken from the SPDK build tree with-L extern/spdk/isa-l/.libs -lisal— the same flags SPDK's ownmk/spdk.common.mkuses — instead of installing a secondlibisal.ainto/usr/local/libSpdkWrapper::GetInstance()/ProbeNofSegment()/SpdkControllerConfig::FromEnvironment()${SPDK_STATIC_LIBS}are now part of the reducedmooncake_store_masterlibraryImportError: libasio.so: cannot open shared object file$BUILD_DIR/mooncake-commononLD_LIBRARY_PATHThe documented path in
docs/source/getting_started/build.mdworks as written, so no documentationchange is needed: the packages and the SPDK build are both handled by
dependencies.sh --with-spdk.Verification on the latest
c3308edb:dependencies.sh --with-spdk, theUSE_NOF=ONconfiguration, the full Mooncake build, and installation all succeed. The focused NoF/SPDK tests (nof_heartbeat_test,nof_register_config_test, andspdk_controller_config_test) pass 3/3, andmooncake_master,nof_worker_pool_bench, and SPDK's bundledlibisal.aare present. The original NoF e2e verification onedbb692breachesrc=0with the master loggingaction=unmount_nof_segment_by_heartbeat, last_error_reason=open_fail. Relinking with the distrolibisal-devpackage installed still links SPDK's static copy (50 isa-l symbols, nolibisalentry inDT_NEEDED), while a missingextern/spdk/isa-l/.libs/libisal.afails at configure time with an actionable message.Reproduction environment
Reproduction steps
configure --with-rdmaaborts:librdmacm-devmissingBefore #4079,
dependencies.shinstalledlibibverbs-devbut notlibrdmacm-dev. SPDK installs the pair only whenpkgdep.shis invoked with--rdma:Before #4079,
INSTALL_RDMAdefaulted tofalse, anddependencies.shcalled./scripts/pkgdep.shwithout--rdma, then immediately configured with--with-rdma.linking a
USE_NOFtarget:cannot find -lisal,cannot find -lelfmooncake-store/src/CMakeLists.txtends the NoF link list with bare library names:libelf-devwas missing from the common Ubuntu package list even though the RHEL branch listedelfutils-libelf-devel; it is now installed only in the Ubuntu/DebianINSTALL_SPDKbranch.make installdoes not install it, so/usr/local/lib/libisal.anever appears, and no distro isa-l package is installed either. (fixed in #4079 by pointing the link list at the SPDK build tree — see Status)make mooncake_masterfails to linkmaster_service.cppinstalls the NoF heartbeat probe throughSpdkWrapper, but the reducedmooncake_store_masterlibrary is built from the shared and master object lists only: the SPDK wrapper sources are added to the client object list, and${SPDK_STATIC_LIBS}is linked into the fullmooncake_storetarget only.This blocks the NoF e2e as well, because the script executes
$BUILD_DIR/mooncake-store/src/mooncake_master.NoF e2e aborts from a source build
The pybind module links
libasio.sofrombuild/mooncake-commonbut only carries an$ORIGINRUNPATH, which resolves in the installed layout only. The script exportsPYTHONPATHbut nothing for the loader, andset -euo pipefailends the run at the first failed import.@github-actions[bot] commented on GitHub (Sep 13, 2026):
Thanks for opening this issue, @Ziy1-Tan!
49604965A maintainer will triage this when possible. To help us respond faster, please include:
Useful links: Documentation · Contributing guide