Skip to content

osdc/hf-cache: self-heal rclone mount across a dead FUSE#876

Draft
huydhn wants to merge 1 commit into
pytorch:mainfrom
huydhn:hf-cache-selfheal
Draft

osdc/hf-cache: self-heal rclone mount across a dead FUSE#876
huydhn wants to merge 1 commit into
pytorch:mainfrom
huydhn:hf-cache-selfheal

Conversation

@huydhn

@huydhn huydhn commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

When rclone dies (e.g. OOM), the FUSE at `/mnt/hf_cache` goes stale ("transport endpoint is not connected") and containerd can't stat the volumeMount source, so the rclone container can't restart and every job pod on the node wedges in `CreateContainerError` until a manual `umount`.

rclone now Bidirectional-mounts the stable parent `/mnt` instead of `/mnt/hf_cache`, so containerd always stats a live dir and the mount self-heals on restart. Follow-up to #874.

⚠️ Draft: changes mount propagation — needs a staging soak before prod.

When rclone dies (e.g. OOM), the FUSE at /mnt/hf_cache goes stale
("transport endpoint is not connected"); containerd can't stat the
volumeMount source, so the rclone container can't restart and every job
pod on the node wedges in CreateContainerError until a manual umount.

Bidirectional-mount the stable parent /mnt instead of /mnt/hf_cache, so
containerd always stats a live dir and rclone restarts cleanly, clearing
the stale FUSE via its own fusermount -uz. The init container also clears
a dead FUSE and makes /mnt an rshared mountpoint (kubelet MakeRShared
needs one) for the pod-recreation path.
@huydhn huydhn force-pushed the hf-cache-selfheal branch from 8123cf6 to 9997305 Compare July 7, 2026 16:59
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.

1 participant