Skip to content

Completion-upload concurrency test must reconcile retryable SQLite responses #154

Description

@rmcdaniel

Main feature CI at 1c30eb1 failed in RuntimePayloadCompletionProcessTest for SQLite/activity: concurrent conflicting uploads returned a retryable 503 backend_lock_pressure and a 409 external_payload_completion_conflict, instead of the asserted initial 201 plus 409/503.

Failed run. This is separate from the activity deadline fix in Workflow 2.0.11; published Server 2.3.8 activity and replay qualification passed.

The completion path deliberately commits its bounded slot reservation before object storage/registration, so a later lock-pressure response can leave that reservation authoritative. A 503 is not proof that nothing committed. Inspect and prove cold retry of the same bytes before classifying this as a test assumption rather than a product defect.

Acceptance:

  • Reproduce lock pressure after the reservation commit with real isolated SQLite state and fresh PHP requests.
  • Prove conflicting bytes remain rejected, original bytes recover one reference, and the lease budget/object count never grows on retries.
  • Keep strict MySQL/PostgreSQL concurrency assertions.
  • Reconcile only the documented retryable lock response; do not accept arbitrary 503s or weaken durable-state checks.
  • Restore main feature CI without a release/version change if only the fixture expectation is wrong.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:defectA public product behavior is incorrectpriority:P2Normal-priority product work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions