-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
EXDEV: cross-device link error during git plugin install in Docker containers #99885
Copy link
Copy link
Closed
Closed
Copy link
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.User-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.no-staleExclude from stale automationExclude from stale automation
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.User-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.no-staleExclude from stale automationExclude from stale automation
Type
Fields
Priority
None yet
Summary
openclaw plugins install git:<repo>fails withEXDEV: cross-device link not permittedwhen/tmpand~/.openclaware on different filesystems, which is common in Docker containers with bind-mounted volumes.Steps to Reproduce
~/.openclawon a bind-mounted volume (e.g., btrfs, NFS, or any non-overlayfs mount)openclaw plugins install git:github.com/CarelvanHeerden/openclaw-okfRoot Cause
The git install code in
install-source-utilsusesos.tmpdir()(=/tmp) as the staging root, then performs an atomicfs.rename()into~/.openclaw/git/. When these paths are on different filesystems (overlay vs bind mount),rename()fails withEXDEV.Suggested Fix
Catch
EXDEVand fall back to recursive copy + unlink:Alternatively, use
~/.openclaw/tmp/as the staging directory instead ofos.tmpdir()so both paths are on the same filesystem.Workaround
Set
TMPDIRto a path on the same filesystem:Environment
git:plugin installs in containerised environments with bind-mounted state dirs