mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[GH-ISSUE #2621] [Bug]: SEGMENT_NOT_FOUND, whether to bind the pin thread to an idle core #688
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#688
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 @huangdong2022 on GitHub (Jun 25, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/2621
Originally assigned to: @LujhCoconut, @ascend-direct-dev on GitHub.
Bug Report
Test Scenario:
qwen3.5 397B A2 machine, single server with 8 GPUs, enabled mooncake SSD. Server reports an error: "OffloadObjectHeartbeat failed, error code is SEGMENT_NOT_FOUND."
mooncake version : v0.3.11
vllm script
mooncake-ssd.json
Error Log
Question
If client logs show
OffloadObjectHeartbeat failed, error code is SEGMENT_NOT_FOUND, Master has unmounted the rank'sLOCAL_DISKsegment (usually afterclient_expiredwhen Ping stops refreshing TTL). SSD offload on that rank stops until the segment is registered again.Typical trigger (with
enable_cpu_binding=true): Mooncake starts Ping during init, then vLLM-Ascendbind_cpus()runsmigratepages/IRQ binding; the Ping thread is not pinned and can miss beats under the defaultclient_ttl=10.mooncake_master ... --client_ttl=120. Tune to your init/warmup window (often60–120is enough). Does not fix the root cause.LOCAL_DISKand rescan metadata afterSEGMENT_NOT_FOUND. This recovers after cleanup; it does not prevent expiry or in-flight request failures while metadata is gone.The Recovery solution also cannot completely eliminate the risk of LOCAL_DISK being cleared by the master. If a request is currently fetching keys from SSDs, and then the pin thread fails to be scheduled within a certain period, LOCAL_DISK will still be released. If the model cannot enable recomputation, the request will fail at this point. Later, we will consider whether to bind the pin thread to an idle core.
Before submitting...
@github-actions[bot] commented on GitHub (Jun 25, 2026):
Thanks for opening this issue, @huangdong2022!
161736910A maintainer will triage this when possible. To help us respond faster, please include:
Useful links: Documentation · Contributing guide
@LujhCoconut commented on GitHub (Jun 26, 2026):
Thank you for your thorough and insightful analysis. From my perspective, this appears to be a rather challenging problem.
Therefore, perhaps making this an optional strategy would be more appropriate?
Happy to discuss further.
@ykwd commented on GitHub (Jun 29, 2026):
@LujhCoconut Currently, when a client gets reconnected to master, will it re-mount the ssd segment?
@LujhCoconut commented on GitHub (Jun 29, 2026):
Yes. It is introduced in this PR (PR #2077 ). Just note that the SSD remount happens on the next FileStorage heartbeat cycle (default every 10s), not immediately during reconnection itself — so there's a brief recovery window.
@WANG-WADE commented on GitHub (Aug 6, 2026):
any progress on this issue so far? seem still not fixed...