Skip to content

SQLite corpus: frozen PHP schedule backfill exhausts retries under maintenance contention #1021

Closed

Description

@rmcdaniel

The pre-tag image qualification for Server 3.1.0 at 5d7fd2ba533551de78444ecd5f9987f842c5f014 failed schedule-catalog against the published PHP 2.11.8 SQLite reference. Evidence on #1019.

schedule-policies-probe.php detects backfill results that lost a SQLite write and replays the whole request sequence in a new namespace, with five attempts. This run exhausted all five. Attempt 5 ended at request 58 of 72: the first valid POST schedules/bf/backfill returned HTTP 200 and seven attempted fires, but included failed workflow starts with SQLSTATE[HY000]: General error: 5 database is locked. The contract correctly rejected the incomplete observation.

The reference API and its maintenance loop were writing the same SQLite database, as the normal corpus runner configures them. This is a frozen-reference contention failure, not evidence of a native runtime regression. The original image qualification continues to gather the remaining target and Compose results. It is not release clearance.

Proposed fix: record schedule-catalog separately with the existing update-validation-sqlite.sh helper, which stops the PHP maintenance loop only for that PHP record and restores it before the embedded/native records. Apply the same fixture partition to native-image qualification and the source SQLite corpus. Preserve the unmodified fixture and all 72 expected statuses. MySQL and PostgreSQL keep their existing coverage.

Acceptance:

  • A fresh targeted three-way recording with the isolated PHP maintenance window passes the existing schedule-catalog contract.
  • Both SQLite runners retain every existing selected fixture exactly once. The separate schedule-catalog comparison must fail the overall run on any record/comparison error.
  • Existing maintenance restoration and scoped ownership checks remain intact; native maintenance stays enabled.
  • Preserve the failed run and report the new runner revision separately from frozen image source F. Security decides how the reviewed runner evidence satisfies the 3.1.0 pre-tag gate.

Related reference contention: #355 (historical schedule occurrence), #796 (isolated service-calls record), #1018 (namespace payload deletion race, a different assertion).

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions