You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Peer deletion leaves tracked dangling symlinks on disk #331
Command: go test ./internal/syncer -count=1 -run '^TestReproPeerDanglingSymlinkDeletion$' -timeout=2m.
Observed on Darwin arm64: the test fails with peer deletion left dangling link: <nil> on both base eaa6e0d and PR revision 77b1871. Before deletion, the receiving device holds the expected link. After deletion, it still exists.
Cause and scope
The deletion loop in Session.materialize resolves the final path through store.UnderRoot and uses os.Stat before unlinking. A dangling link cannot be resolved, and following a live link compares target metadata instead of link metadata. The dangling-link case drops the cache entry without removing the filesystem entry.
The deletion block is unchanged by #329. Track its repair separately: use link-aware containment and fingerprint checks while preserving writable local edits and never following symlink ancestors. Remote symlink creation, deletion, and concurrent local link replacement need two-device regression coverage.
Activity