2.0 KiB
HTTP concurrency fixture completion review
The integrated run exposed completion watchdog assumptions in two existing real HTTP tests, not a demonstrated catalog-locking or revision-commit defect. The slow-source test's two-second catalog read and winning PATCH assertions completed before its old 25-second candidate-completion watchdog expired. The oversized test's five-second candidate-validation watchdog also expired; its separate catalog responsiveness assertions had passed.
A focused experiment extending the slow-source completion watchdog exposed the actual response: the 2,000-deep accepted fixture returned HTTP 504 after 31.05 seconds. The service has a real 30-second request deadline. Waiting longer cannot turn that response into the intended 412 conflict, and accepting 504 here would lose this test's revision-conflict proof.
The concurrency fixture now uses 1,000 nested activities. It retains the
100-millisecond unfinished-request assertion, two-second catalog/PATCH bounds,
exact 412 revision_conflict, revision 2, winning model content, and persisted
disk equality checks. Its completion watchdog is 45 seconds, enough to observe
the real service deadline. The oversized import/replacement/candidate checks
use 30-second completion watchdogs while retaining their separate five-second
catalog bounds, exact model_limit rejection and no-mutation checks. Only test
fixtures/watchdogs changed; production service behavior is unchanged.
Focused verification on the same -p oa-server --test http feature graph:
| Test | Result | Test duration |
|---|---|---|
accepted_slow_source_does_not_lock_catalog_and_loses_to_a_newer_http_revision |
1 passed | 13.13 s |
oversized_source_and_json_are_rejected_without_stalling_the_catalog |
1 passed | 25.71 s |
Logs: .local/server-completion-focused.log and
.local/server-oversized-focused.log. These focused passes do not establish the
result of the next integrated workspace run under concurrent test load.