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
32 lines
763 B
TOML
32 lines
763 B
TOML
[package]
|
|
name = "musicfs-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
|
|
[[bin]]
|
|
name = "musicfs"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
musicfs-core.path = "../musicfs-core"
|
|
musicfs-origins.path = "../musicfs-origins"
|
|
musicfs-cache.path = "../musicfs-cache"
|
|
musicfs-cas.path = "../musicfs-cas"
|
|
musicfs-fuse.path = "../musicfs-fuse"
|
|
musicfs-metadata.path = "../musicfs-metadata"
|
|
|
|
clap.workspace = true
|
|
tokio.workspace = true
|
|
tokio-util.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
tracing-appender.workspace = true
|
|
anyhow.workspace = true
|
|
dirs.workspace = true
|
|
parking_lot.workspace = true
|
|
libc.workspace = true
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
tracing-journald.workspace = true
|
|
sd-notify.workspace = true
|