Repository navigation
CI: corpus profiles and restart cases as their own fixture part; bound readiness probes - #757
Conversation
With corrected markers in their own part, the corpus part is the Shared Server fixtures' long pole: 17 to 21 minutes, almost all of it one step (1031 s on mysql-8.0 in run 40162397220). That step records and compares the corpus (about 8 minutes), then runs the published patch, legacy-marker and range-repair profiles and the native restart and PHP takeover-refusal cases (about 9 minutes). The second half uses its own workflows and only the nodes the step starts. Each database job now runs a sixth part, restarts. A shared step starts the published PHP and native nodes in both the corpus and restarts parts. The corpus part records and compares the corpus, and the restarts part runs the profiles and restart cases. Every check still runs exactly once per database. The SQLite job's step-level RESOURCE_SCOPE follows each of its split steps (the Docker isolation policy caught it missing). The parts test now requires six parts, the shared node start in exactly the corpus and restarts parts, the profiles and restart cases only in restarts, and none of them in the corpus comparison. It fails against the previous workflow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cloud's review of #756 (wrapper review at 058861c) found that the readiness loops bound their attempts but not each request. One accepted but silent connection could hold a curl until the 60-minute job limit, despite the 30-attempt loop. Every /api/ready probe in the fixtures workflow now passes --connect-timeout 2 --max-time 5. The parts test requires it of every probe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Cloud's bounded read-only wrapper review accepts exact head All122 No additional wrapper finding or Cloud hold. Native behavior, full CI success and measured throughput improvement remain the owner's separate qualification gates. Any later workflow/head change needs its own scoped recheck. |
The SQLite job started its PHP maintenance container after the corpus step's CLI download, which the split left in the corpus comparison. The restarts part's published patch profile pauses and resumes that loop (Server #721) and first requires it running, so on run 40167441821 it failed at once (job 121092116756) without any fixture difference. The MySQL and PostgreSQL jobs already start theirs with the other nodes. The shared node start now starts the loop in every job, and the parts test requires that. The new assertion fails against bc95d00. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Merged as 7ede756, pinned to the reviewed head Checks at the head. Required PHPUnit Feature, Public Boundary, SonarQube and Shared Server fixtures all passed. The fixtures run (40169120328) needed one rerun of two failed jobs. Both failures were reference-side PHP repair-pass races, recorded on #754 (comment 6394576240), and both jobs passed on attempt 2. Measured on attempt 1 (job start to finish):
The slowest part is now The next CI change goes after |
…low-stream-writes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st-325-ci-codec-one-job Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nto rust-325-workflow-import Native now serves 139 route methods: main's 138 plus embedded v2 import. The runtime keeps both new modules, and the comparator node test list keeps both sides' tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nto rust-325-record-local-activity The worker capability manifest keeps this branch's local activity entries and main's worker session and update validation entries. The comparator, probe and node test lists keep both sides' fixtures and tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nto rust-325-cancellation-scopes Workflow-task completion admits cancellation scopes before it guards worker-session commands, in published 2.11.1's order. A scheduled activity's options keep main's worker session and add its cancellation scope, as PHP's bridge appends it. Native serves 141 route methods; cancellation scope checkpoints stay missing. The probe timeout chain and the comparator node test list keep both sides' entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>



Cuts the Shared Server fixtures' remaining long pole, and bounds every readiness probe as Cloud's #756 review asked.
Why. After #756 the corpus part sets the wall time alone: 18 to 20 min per database, while every other part takes 16 min or less (#756 comment 6394082981). Almost all of it is one step, 1031 s on mysql-8.0. That step:
The profiles and restart cases use their own workflows and only the nodes the step starts.
What changes
restarts, in the MySQL, PostgreSQL and SQLite jobs (134d822).RESOURCE_SCOPEenv now follows each of the three steps. The Docker isolation policy caught this missing in a first draft; without it the later steps would have started unscoped containers./api/readyprobe now passes--connect-timeout 2 --max-time 5, so one accepted but silent connection can't hold a curl until the 60-minute job limit (Cloud's review of 058861c).Tests
ServerParityPartsTest.mjsnow requires:Expected effect. The corpus part drops to about 11 to 12 min and the restarts part takes about 12 min, so the slowest part becomes sdk-directions or native-tests at about 16 min, down from about 20. I'll post the measured per-part times from this PR's run.
🤖 Generated with Claude Code