Abort expired multipart sessions without touching completed objects
Abandoned sessions retain billable parts. Add expiry cleanup with a guarded session transition.
- Focused work estimate
- 2h 15m + prerequisites
- Priority in the scenario
- Medium
- Engineering practice
- Lifecycle · Resource management
Estimated field mix
- Storage systems70%
- Site reliability30%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
Fictional document archive Fern stores synthetic byte objects. Use a local S3-compatible adapter or deterministic in-memory provider; no cloud credentials are needed.
Setup prerequisites
- Generate small deterministic byte fixtures.
- Implement local multipart provider responses including timeout and missing parts.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- COBJS-101 · Normalize object names without treating them as filesystem paths
- COBJS-102 · Bind multipart upload sessions to organization and object identity
- COBJS-103 · Reject multipart uploads exceeding declared size limits
- COBJS-104 · Retry the same multipart part without creating contradictory receipts
- COBJS-105 · Validate ordered multipart completion against acknowledged parts
- COBJS-106 · Verify completed object content before marking it available
- COBJS-107 · Recover a timeout between multipart finalization and metadata commit
Acceptance criteria
- Only expired open sessions abort
- Completed objects remain readable
- Repeated abort is harmless
Implementation constraints
- Compare session state immediately before provider action.
Verification to include
- Clean abandoned fixture
- Race cleanup with completion
Deliverables
- Session cleanup and race case
Rollout and recovery
Disable cleanup if finalization state is uncertain.
Value of the work
For the engineer: Practice object lifecycle, retry semantics and integrity verification.
For the team: Inspect whether uploads avoid corruption, orphan cost and tenant crossover.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.