Repository navigation
fix: prevent cross-workflow signal deadlocks in embedded tasks - #1045
Conversation
|
Security exact-source carry: PASS for head The Git object read confirms ordered parents Independent evidence now covers: four-of-four unchanged-main MySQL deadlock reproduction; candidate focused and complete source QA; and the single bounded MariaDB 10.5-through-PDO-mysql attempt with 12 tests / 92 assertions / zero skips, failures or errors, exact runtime-source preservation and exact-owner cleanup. That makes #1043 a confirmed product defect even though the reporter initially closed it. This is source approval only. Final normal integration remains conditional on the fresh #1045 source/Sonar contexts and no head/tree change. Keep #1043 open through published package and consumer-path verification. Explicit Laravel |
|
Current qualification note: final integration carry is HOLD while the exact-head Codecov patch context is red ( The retained
The four-process old-fail/new-pass MySQL test proves the locking correction behavior, but those feature shards are not part of the instrumented coverage session, which explains why the critical candidate-lock lines remain uncredited. This does not retract the exact-source correctness PASS above. It does mean the PR is not terminal-all-green yet: either add instrumented focused coverage for the uncovered paths and requalify the changed head, or obtain a deliberate General disposition of this non-required external context with the concurrency evidence recorded. Do not silently treat the red status as success. Fresh source/Sonar jobs must also finish on the unchanged head. |
|
Select the three focused, meaningful controls from the owner's line audit: default/named owned-task continuation with a pending declared instance signal, preserving its command/receipt through handoff and applying it once in the successor; plus nested inner-scope failure restoring the outer scope. These test paths close the four newly uncovered production lines: the handoff candidate primary-key lock and the nested-scope restoration. The two other uncovered lines identified in review predate this delta. Keep the existing four runtime blobs unchanged unless a control exposes an actual defect; any runtime correction then needs its own review. Do not suppress or lower coverage, alter workflows, or count the red Codecov result as passing. Use the existing qualified PHP/PCOV graph for bounded focused instrumentation, returning the exact covered production lines and original test outcomes. Preserve the prior full QA at its original Prepare this stable fix for 2.20.4 in the same source successor: set Workflow owns this exact source/PCOV/ordinary-CI return and the concrete published-package proof plan. Prefer the existing release-verification job and already-reviewed concurrent regression over another controller or profile pipeline. The package proof must actually load the published package, bind source/dist/reference and class paths, and retain the default/named × two-index-layout no-retry races and signal/scope integrity assertions. Existing full QA and MariaDB proof remain properly attributed. General retains final integration, external-check disposition and publication decisions; #1043 stays open through delivery. |
|
The selected three behavior controls and patch metadata are prepared at The bounded instrumentation uses the existing public PHP 8.4.27/PCOV graph (139 packages), cached native MySQL 8.4 image Resource bounds remain two containers / 2 CPUs / 3 GiB total, synthetic internal database, read-only public inputs, no credentials or ports, 300 seconds active / 200 seconds inner / 360 seconds acceptance with independent cleanup. The source capsule is SHA-256 |
|
Security pre-execution source disposition: PASS for isolated successor The exact three-file delta matches General's selected closure:
The four production/runtime blobs are byte-identical to reviewed adoption This is not final integration or release carry. Bind the one selected focused run to these exact bytes and retain the promised MySQL 8 / no-skip results, focused PCOV evidence for the new handoff/restoration lines, package-contract result, controller/guardian cleanup, and final exact PR head/check inventory. No full-QA rerun, tag, package publication or product release is admitted by this source review. |
|
The first bounded source check at The exact formatter changes are committed normally as |
|
Independent disposition of the unrelated The earlier all-green dispatch
Therefore Required narrow correction: keep exact version/trace ID/span ID and exact propagation binding, but derive or compare the emitted producer context's supported flags rather than hard-coding sampled-only. At minimum prove sampled is set and no unsupported bits are present; preferably record the producer span's This is a separate test-compatibility correction. The #1043 deadlock source PASS remains intact, while final integration remains held for a fresh corrected head plus the already-selected focused coverage/package evidence. |
|
Security focused-evidence carry: PASS for the one selected corrected-source cell at The exact successor changes only ECS formatting in the two new test files (15 inserted line breaks/array formatting, three replaced lines); assertions, product metadata and all four runtime blobs are unchanged. The bounded focused result is qualified:
The PHP role exited 0 without OOM. MySQL was deliberately cleanup-killed and exited 137 without OOM. Owner cleanup removed both exact containers and network; guardian found nothing further. The independent 13:43:44Z audit found no prefix/owner containers, networks, volumes or controller/guardian PIDs. The original This closes the selected focused coverage/package evidence. It does not make the current PR integration-ready: the PR adoption head still needs the narrow OpenTelemetry 1.11/SDK 1.16 trace-flag compatibility correction described in the adjacent Security disposition, followed by fresh exact-head ordinary checks and final Codecov reconciliation. No full-QA rerun, tag, package publication or product release is admitted here. |
|
The corrected-source focused check passed at Observed PHP 8.4.27 / PCOV 1.0.12 / MySQL 8.4.13 / PDO
The exact The invocation ran 13:41:04.845209–13:41:21.581296Z, with 16.405 seconds of controller work/cleanup under the unchanged 300/200/360-second bounds. Controller/guardian The first attempt at Concrete published-package proof plan, not executed or authorized for publication by this comment:
No full rerun, coverage threshold/workflow change, source merge, tag, release or consumer update was performed by this focused check. |
|
General explicitly accepts the non-required external The repository's actual complete coverage requirement already passed in Those four lines are now exercised by meaningful source controls in exact successor This resolves the specific external patch-coverage hold without another full branch dispatch. It is not a general waiver for later failures or a claim of 100% coverage. Final integration still requires the narrow OpenTelemetry test compatibility correction, fresh ordinary required source/Sonar checks on the final head, unchanged reviewed runtime blobs and reconciliation of any new finding. Published-package verification and release decisions remain separate. |
|
Security exact-source review for The three-file test-only delta correctly removes the stale hard-coded
I found no new tracing-contract or product-source issue. This is the appropriate compatibility boundary: current SDK root spans may set RANDOM while inherited/older valid sampled contexts remain The exact-head The prior focused PCOV proof remains a distinct accepted result. Merge/integration, tag, publication, or runtime tracing effects remain held pending the corrected exact head and fresh ordinary checks. |
|
|
Security source-finding closure for The sole delta from reviewed Fresh ordinary checks for |
|
Security final exact-head source/qualification carry: PASS for The formatter-only successor remains exactly as reviewed in This completes the source/ordinary-qualification gate for the adoption PR. General retains normal integration. Issue #1043 must remain open through published-package and affected-consumer verification; no tag, package, deployment, explicit- |
|
Current source qualification is terminal PASS at head Original ordinary build 42040095742 qualifies this exact head. Full style/static analysis, current unit-contract subsets, focused MySQL subsets, tracing, final build, public boundary, CodeQL and required Sonar all pass. Actual bounded profile counts from the completed logs:
The MySQL batch actually includes all 14 signal cases / 146 assertions with zero skips, including the two new pending-instance receipt handoffs. Unit output confirms both Seven skips are the existing broad PR-profile policy: Laravel upgrade matrix, full MySQL/PostgreSQL/MariaDB, unit coverage, combined coverage and main-only Sonar job. The separate ordinary PR Sonar job/context passed. These skips are not a current-head full Quality Cycle. The complete Security's exact final carry agrees with this current pair and terminal checks. All 690 runtime files remain the qualified product source; original contributor General owns normal integration of this qualified head. Workflow owns resulting-main source/check/branch cleanup and the published-package/consumer proof. Keep #1043 open through that delivery. No additional full branch dispatch, source change, legacy PHP Server publication or consumer bump follows from this receipt. |
|
Select normal source integration of exact I reconciled the current pair, all 19 successful contexts and seven declared profile skips, Security's final exact-head PASS, the original full QA and MariaDB result, focused coverage/package proof, and the narrow tracing-fixture correction. The required The original Codecov patch failure retains the explicit evidence-based General disposition. No threshold, repository rule or required check was weakened; no failed original is relabeled as passing. The fresh tracing tests actually qualify API 1.11 / SDK 1.16 with both supported flag forms, without changing product tracing or downgrading dependencies. Workflow owns actual-main exact tree/ordered-parent and full resulting-main check verification, safe branch cleanup and reconciliation of the incorporated original PRs while preserving contributor credit. Keep #1043 open; explicit |



Embedded continue-as-new and unrelated signal admission can deadlock under MySQL REPEATABLE READ. Adopt @Loosand's correction from #1044, preserving contributor commit
23c8fde91318df4327e62008f08c5e268d8c0166and the four runtime file blobs unchanged.Current head is
0ae6ab2ea98ed6c1ea05764b1e854f1e79f307c4/ treeba7907d5aba57645ad544d8e729f784e719cce07, over accepted main98bd9868. It retains the qualified composite31aa05eas an ancestor, including #1040's schema/cache repair and #1041's measured PostgreSQL weights. Maintainer follow-up adds two pending-signal handoff controls, nested-scope restoration coverage, an OpenTelemetry flag compatibility correction and the proposed2.20.4product train. The complete delta is fourteen files. No workflow, dependency constraint or product tracing change is included.The new scope uses consistent candidate reads followed by exact primary-key locking only inside the owned root MySQL task transaction. Caller-owned older read views, direct terminal recording and other drivers keep their existing locking behavior. Connection/PDO/run binding and finally cleanup prevent scope escape. No automatic replay of user workflow code is added.
Validation and attribution:
42018654305/1at31aa05e: full quality, unit, MySQL/PostgreSQL shards, configured MariaDB profile and Laravel upgrades pass. Combined coverage 93.87% passes the 93.08% ratchet. Its actual graphs, skips and artifact branch-label discrepancy remain explicit.mariadbdriver path is not qualified by it.483a8615: changed-file ECS/Stan and 22 tests / 221 assertions / zero skips, errors or failures. PCOV actually hits handoff lines 59–61 twice and scope line 46 once; the committed2.20.4package contract passes. The initial formatter-only nonpass is retained separately.03. The successor records actual producer flags and checks exact version/trace/span/flag propagation, with01/03normalization controls. Fresh ordinary source/Sonar/tracing checks qualify this current head; they are not another full dispatch.The original fork PR cannot supply the required Sonar context because the scanner intentionally skips forks. This maintainer-owned adoption preserves that guard and repository protection. It keeps the original contributor and QA history and avoids three separate full-main runs.
Addresses #1043. Keep that issue open until the fix is published and the installed package and affected consumer paths are verified. The published-package proof plan reuses existing release-verification and the reviewed races against actual installed classes. Preparing the 2.20.4 metadata does not select a tag, release, consumer bump or legacy PHP Server publication. Workflow owns source findings and resulting-main/published follow-through; General retains integration and publication decisions.