Skip to content

Test concurrent signals during application continuation - #320

Merged
rmcdaniel merged 2 commits into
mainfrom
test/318-app-kernel-signal-continuation
Nov 5, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
test/318-app-kernel-signal-continuation

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

The consumer checks cover signals and continue-as-new sequentially. Add the remaining named-v2 concurrent application-kernel case for #318, using the real Laravel application, its existing shared MySQL connection and the installed Core selected by the committed lock.

One test forces the same history-lock interleaving as Core #1043: a continuation reaches its terminal update, a separate signal actor locks the unrelated run's history, then both proceed. The workflow fixture is byte-identical to Core 2.20.4/e366 (tests/Fixtures/V2/TestSignalContinuationWorkflow.php, Git blob 4cc0f024126966056c8b95f03b30a82a7bb92751). No full Core suite is copied.

Both connections read back MySQL, REPEATABLE READ and their distinct physical connection IDs. At each SQL barrier the test asserts the exact named shared Connection object, active Laravel transaction and active PDO transaction. The test verifies the actual installed Core version/reference and runtime paths, both committed outcomes, one signal attempt, preserved receipt identity and exactly-once signal application. The critical phase has a 30-second parent alarm, 20-second child alarm, eight-second socket waits, five-second InnoDB waits and bounded child reaping. Queue dispatch is faked; the workflow jobs and database operations execute normally with committed rows and command transaction attempts one.

Local checks: PHP syntax, exact upstream-fixture comparison, public-boundary and staged secret/diff checks. No application/vendor/database execution ran locally. Existing ordinary PHP 8.4/8.5 MySQL CI supplies the actual result. Missing process/socket/MySQL prerequisites fail explicitly; there is no replacement controller, manual installed cell, dependency/tool acquisition or publishing action.

Tracks #318 and Workflow #1043. Composer pairs, artifact tuple, application/CI configuration and explicit manual publisher are unchanged.

Current-head validation (6be15e8f3d956620d359804e2a42e8a5544d52d0): original CI 42101678646/1 passes on PHP 8.4.27 and 8.5.12, each 192 tests / 1688 assertions plus the existing Playground warning. Both report MySQL 8.0.46 / REPEATABLE READ, installed Core 2.20.4/e366, distinct PDO connections, both barriers on shared at transaction level 1 with PDO in transaction, one signal attempt and both committed outcomes. All four protected required contexts pass.

@rmcdaniel rmcdaniel added php Pull requests that update php code agent:sample-app labels Nov 5, 2026
@rmcdaniel

Copy link
Copy Markdown
Member Author

Actual app-kernel concurrent result is PASS on original current-head CI 42099044709/1, exact candidate da4ede4e0b376cb9dfd2cc154554051052aee3c8 / tree 5370fbea5f1822c0673db7a3403fa589ddaddb45, base c49d794.

Existing CI job Actual runtime Named MySQL/isolation Independent PDO IDs Result
PHP 8.4 PHP 8.4.27 / Laravel 13.34.0 / Core 2.20.4 shared / mysql 8.0.46 / REPEATABLE-READ 78 / 79 Case PASS; 192 tests / 1,684 assertions
PHP 8.5 PHP 8.5.12 / Laravel 13.34.0 / Core 2.20.4 shared / mysql 8.0.46 / REPEATABLE-READ 73 / 74 Case PASS; 192 tests / 1,684 assertions

Both emitted results bind actual installed source reference e3664430fd1b795aadaca89c835d5281502a01ce, reflected class/function paths inside the installed package, and byte-identical fixture SHA-256 c0510b1caf2d78f4d6fa5b80bfa0f08f721aadf104bcf490ae12226cc2c9dbf5 (Git blob 4cc0f024). Both show accepted: true, exactly one signal-admission attempt and both actors committed; signal applied once. The forced SQL barrier was reached, the continuation/signal history and original receipt fields were checked, and the child was reaped. The actual parent isolation remained REPEATABLE READ after execution. Neither result is a skipped or sequential substitute. Each full root suite retains the same existing Playground warning.

This executes the one retained app-kernel case through the existing ordinary source CI and real app configuration; it does not repeat Core's full 22-case suite. Composer/tuple/application/CI/publisher files are unchanged. No manual installed cell, local DB application run, replacement controller, source-hold bypass, image publication or deployment occurred.

Owner sample-app will finish the current protected required contexts and normal green source integration/main follow-through. Other running original checks retain their actual status; this case result is not a claim that every unrelated workflow has completed. Future image publication remains separately held under #318 and the accepted central path/effect gates.

@sonarqubecloud

sonarqubecloud Bot commented Nov 5, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Current-head source acceptance: 6be15e8f3d956620d359804e2a42e8a5544d52d0, tree 30ccce9390cb91bd51cd82c4db685c88689b211a.

The successor binds both forced SQL barriers directly to the named storage connection and its active transaction. Its fresh original CI 42101678646, attempt 1 passed:

Actual executor Root result Parent / child PDO IDs Both SQL barriers
PHP 8.4.27 192 tests / 1688 assertions 80 / 81 shared, transaction level 1, PDO in transaction
PHP 8.5.12 192 tests / 1688 assertions 78 / 79 shared, transaction level 1, PDO in transaction

Both actual application kernels report Laravel 13.34.0, installed Core 2.20.4 / e3664430fd1b795aadaca89c835d5281502a01ce, MySQL 8.0.46 / REPEATABLE READ, fixture SHA-256 c0510b1caf2d78f4d6fa5b80bfa0f08f721aadf104bcf490ae12226cc2c9dbf5, one signal admission attempt, both actors committed and signal applied once. Each suite retains the existing Playground warning; neither concurrent case is skipped. This current result supersedes the earlier head's clearance without erasing its original receipt.

All four expected protected contexts are present and SUCCESS: Target branch qualification, docker compose sample workflows, polyglot smoke (PHP/Python/Rust), and SonarCloud Code Analysis. Three optional SDK timer checks are still in progress at this observation; no check is failed or represented as passed early.

Owner/next action: sample-app will perform the normal protected source merge and verify actual resulting-main acceptance. Only two test files differ from main. Locks, tuple, application and CI configuration and the explicit manual publisher are unchanged; no publisher dispatch or local application/DB cell is selected. #318 remains open for this main receipt and the separate future image outcome.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 5, 2026 20:25
@rmcdaniel
rmcdaniel merged commit 21e28b6 into main Nov 5, 2026
30 checks passed
@rmcdaniel

Copy link
Copy Markdown
Member Author

Normal source integration complete: #320 merged at 2026-11-05T20:25:47Z as main 21e28b682dd9da25b5a369e39ae99e8ba375c947. I independently fetched main and verified ordered parents c49d7948552e954f607708a045cb323a9e279c6d + 6be15e8f3d956620d359804e2a42e8a5544d52d0 and tree 30ccce9390cb91bd51cd82c4db685c88689b211a, identical to the accepted candidate.

All four protected required contexts were present and green before the normal match-head merge; no admin/force/waiver or protection change. The current candidate's original application MySQL concurrency result is retained. Three optional SDK timer checks were still in progress at the merge observation and are not claimed green early.

Owner/next action: sample-app is checking the original resulting-main workflows, actual MySQL/barrier outcome and absence of any automatic publisher run. #318 remains open. The explicit manual publisher is unchanged and unexecuted; the unsupported Bookworm/two-architecture central publishing path has a concrete owner request on central #295.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Actual-main application-kernel acceptance is PASS on 21e28b682dd9da25b5a369e39ae99e8ba375c947 / tree 30ccce9390cb91bd51cd82c4db685c88689b211a, original CI 42103292111/1. Both PHP 8.4.27 and 8.5.12 pass 192 tests / 1688 assertions, retaining the existing Playground warning. Direct logs:

  • PHP 8.4: distinct PDO IDs 74/75, concurrent case 4.50s.
  • PHP 8.5: distinct PDO IDs 78/79, concurrent case 5.01s.

Each actual application reports installed Core 2.20.4 / e3664430fd1b795aadaca89c835d5281502a01ce, Laravel 13.34.0, MySQL 8.0.46 / REPEATABLE READ, the unchanged canonical fixture SHA-256 c0510b1caf2d78f4d6fa5b80bfa0f08f721aadf104bcf490ae12226cc2c9dbf5, both forced SQL barriers on the exact named shared connection at transaction level 1 with PDO in transaction, one signal attempt, both actors committed and signal applied once. This is the distinct concurrent app-kernel evidence; prior #319 results retain their sequential/package-adoption scope.

Source/cleanup: normal merge followed all four green protected contexts without waiver; actual ordered parents/tree verified. Remote branch is absent, local candidate retained, public reference scratch removed and exact local sample-app container inventory empty. All original PR checks have now finished green. No local application/DB cell or new toolchain was run.

Overall main acceptance remains NONPASS/incomplete: at this observation 13/15 original main workflows pass, SDK timers are still active, and playground 42103292051/1 failed Rust registration after PHP/Python completed. It is preserved as an original failure, not retried or relabeled green. Owning #321 / draft #322 separate caller Rust preparation from strict registration and own normal current-head/main qualification. SDK Rust found no duplicate open issue/job and retains a handoff if prepared-binary evidence isolates an SDK defect.

#318 remains open for this concrete source/main repair and the separate future image outcome. Publisher runs for this main SHA are zero; manual publisher stays unexecuted. General retained the applicable central Bookworm/two-architecture/early-Brotli/Playwright source coverage with sole owner CLI under inventory 6668298377, followed by a separate future image-effect decision. No image/publication acceptance is inferred from the functional proof.

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

Labels

agent:sample-app php Pull requests that update php code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant