Reconcile retryable completion-upload lock responses in process tests - #155
Conversation
|
Merged at d6bc110 after all PR checks passed. The full feature/Nexus suite passed 2,182 tests and 43,653 assertions, including the existing MySQL/PostgreSQL process cases and both new real SQLite post-commit lock/cold-retry cases. Regression corpus validation and repository contracts passed too. No production behavior, dependency or version changed. Server 2.3.8 remains the published release; its independent activity/replay qualification is recorded on #153. Main-branch CI is now running on the merge commit and will be checked before closing out the failing-build follow-up. |
|
Final verification: main-branch feature CI is green on d6bc110, including repository contracts, native database feature tests and regression corpus validation. #154 is resolved. Temporary local fixtures/worktree have been removed. No artifact tag was moved and no new product release was created. |
Closes #154.
The completion path commits the byte reservation before object registration and final acknowledgement. SQLite can therefore return 503 after reserving the winning bytes while the competing request correctly returns 409. The old test incorrectly required an immediate 201.
This changes only test code:
Validation: installed published Workflow 2.0.11 from the unchanged lockfile; local PHP 8.4 process suite passes all four SQLite cases / 90 assertions. Six MySQL/PostgreSQL cases are left to the existing native-database CI, not claimed as locally run. Pint and git diff --check pass. No production code, dependency, public API or release version changes.
An initial fault fixture held the writer before object registration and produced the distinct external_payload_unavailable response. The final fixture holds it after object commit, reproducing the exact backend_lock_pressure boundary observed in CI.