0ff2a17ab7
Implements phase-c-hardening.md to fix 6 RED resilience tests: - D1/D2: Health check timeout (1.5s) + parallel execution via join_all - C6: Recursive CAS calculate_size() to scan shard subdirectories - C7: FUSE read timeout (30s) returns EIO instead of hanging - 6.4: Auto-re-fetch corrupt/missing chunks from origin - 6.6: Passthrough mode - continue even when CAS write fails - C9: PID file with flock prevents concurrent mounts - 5.3: fd exhaustion handling test All 27 resilience tests now pass. Full test suite green. Files changed: - musicfs-origins/src/health.rs: timeout + join_all - musicfs-origins/Cargo.toml: add futures dependency - musicfs-cas/src/store.rs: recursive calculate_size - musicfs-cas/src/reader.rs: auto-re-fetch on IntegrityError/NotFound - musicfs-cas/src/fetcher.rs: passthrough fallback - musicfs-fuse/src/filesystem.rs: 30s read timeout - musicfs-cli/src/main.rs: PID file with flock - musicfs-test-utils/tests/resilience.rs: updated tests
24 lines
480 B
TOML
24 lines
480 B
TOML
[package]
|
|
name = "musicfs-origins"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
|
|
[features]
|
|
default = []
|
|
s3 = []
|
|
sftp = []
|
|
|
|
[dependencies]
|
|
musicfs-core = { path = "../musicfs-core" }
|
|
async-trait.workspace = true
|
|
dashmap.workspace = true
|
|
futures.workspace = true
|
|
libc.workspace = true
|
|
thiserror.workspace = true
|
|
tokio = { workspace = true, features = ["fs", "sync", "time"] }
|
|
tracing.workspace = true
|
|
parking_lot.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tempfile.workspace = true
|