26 lines
1008 B
Markdown
26 lines
1008 B
Markdown
# US07-04 — Prove Concurrency and Crash Recovery
|
|
|
|
Epic: [E07](../E07-hardening-release.md)
|
|
|
|
As an operator, I want randomized race and fault tests so concurrency cannot produce
|
|
deadlocks, stale commits, duplicate terminal states, or data loss.
|
|
|
|
## Acceptance criteria
|
|
|
|
- Test control points exist at persisted transitions without exposing production
|
|
mutation APIs.
|
|
- Tests cover database pressure, worker claim races, file changes, thumbnail races,
|
|
safety/analysis races, EXIF/upload races, rename/archive conflicts, and cancellation.
|
|
- Faults cover process death, disk full, read-only paths, DB busy/corruption, network
|
|
failures, malformed providers, GPU exhaustion, subprocess hangs, and missing tools.
|
|
- Recovery is deterministic or enters an explicit manual-recovery state.
|
|
|
|
## Automated tests
|
|
|
|
- Randomized suites repeat with recorded seeds and assert invariants after restart.
|
|
- CI retains journals, logs, DB, seed, and filesystem manifest for any failure.
|
|
|
|
## Dependencies
|
|
|
|
- US07-02, US07-03
|