fix(workflows): bound activation database contention - #572
Conversation
Persist a finite workflow_activation_database_busy outcome when SQLite busy retries are exhausted, while preserving idempotent branch admission and AgentRun creation. Agent: iapp-factory-coordinator
Inject the exact SQLite code 5 and 517 error shapes already recognized by the shared state retry layer, without adding a test-only dependency that changes Cargo.lock metadata. Agent: iapp-factory-coordinator
Derive initial admission timeout from both the activation retry and structured persistence budgets, plus the existing observation margin. Agent: iapp-factory-coordinator
Cap activation state retries by elapsed time so SQLite busy_timeout cannot outrun initial-admission persistence, and cover a slow code-5 attempt. Agent: iapp-factory-coordinator
Move an owned WorkflowActivationService clone into the verifier heartbeat task so the spawned future remains static without changing retry behavior. Agent: iapp-factory-coordinator
445be71 to
58d733a
Compare
Keep the fixture-only retry override scoped to the injected fault while routing current-main invalid source snapshot handling through the production activation retry service. Agent: iapp-factory-coordinator
58d733a to
b568b3d
Compare
|
[REVIEW] NO_GO — #572 @ b568b3d — lens: correctness+security+gates, reviewer Hostus (1 of 1) Inspection and commands:
Blocking P1 findings:
These require a real implementation change and targeted regression coverage for busy at a post-admission boundary and for recovery of the persisted busy state. The PR remains open and is not mergeable from this review. Forge check records (name — status/conclusion):
|
Summary
Validation
Task: COD2-00010 (9facf31d-38ab-4a22-8a66-f6121615512f)
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.