fix(storage): ErrNotFound wraps fs.ErrNotExist at the sentinel (#153 crashloop, round 2) #164

Merged
Cordy merged 1 commit from fix/notfound-sentinel into main 2026-08-09 04:38:17 +00:00
Owner

v0.5.3 still crashlooped: Stat has a second, bare return storage.ErrNotFound (the neither-file-nor-directory fallthrough) that bypasses mapS3Err, and Open routes through Stat. Instead of chasing return sites, the sentinel itself now wraps: ErrNotFound = fmt.Errorf("not found: %w", fs.ErrNotExist) — every site, present and future, satisfies both checks; identity comparisons and errors.Is(err, storage.ErrNotFound) unchanged. Hotfix-1's site-local Join reverted to the plain sentinel. Full suite green.

v0.5.3 still crashlooped: `Stat` has a second, bare `return storage.ErrNotFound` (the neither-file-nor-directory fallthrough) that bypasses `mapS3Err`, and `Open` routes through `Stat`. Instead of chasing return sites, the sentinel itself now wraps: `ErrNotFound = fmt.Errorf("not found: %w", fs.ErrNotExist)` — every site, present and future, satisfies both checks; identity comparisons and `errors.Is(err, storage.ErrNotFound)` unchanged. Hotfix-1's site-local Join reverted to the plain sentinel. Full suite green.
fix(storage): ErrNotFound sentinel wraps fs.ErrNotExist — every return site satisfies both (#153)
All checks were successful
ci / test-and-build (pull_request) Successful in 32s
e04f8ed3ee
Cordy merged commit 51c514529c into main 2026-08-09 04:38:17 +00:00
Cordy deleted branch fix/notfound-sentinel 2026-08-09 04:38:19 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#164
No description provided.