Skip to content

Make published queue fan-out qualification honor its observer - #818

Merged
rmcdaniel merged 4 commits into
mainfrom
fix/published-fanout-observer
Oct 16, 2026
Merged

rmcdaniel merged 4 commits into
mainfrom
fix/published-fanout-observer

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Related to #809. This changes the diagnostic and CI, not runtime behavior or a package version.

Change

  • Continuous consumers keep four real queue workers serving until canonical completion inside the original 90-second observer. The same absolute budget covers initial work, drain and inspection. Workers stop through the public Looping event; no SIGTERM qualification is claimed.
  • Preserve the legacy 45/80-second modes and original locked 2.5.23 input. Add a separately named published 2.5.27 / PHP 8.3 framework input matching the direct versions observed in the failing hosted tracing job.
  • Report bounded read-only state before cleaning up a failed original. Keep all typed output, callback/attempt, history, deadline and clean-recovery assertions.
  • A thin GitHub job installs the committed dependency lock, verifies every runtime byte against the immutable release and runs the existing cohort. It exports no raw database/history or recurring lock archive.
  • Functional unit checks and this consumer explicitly disable Xdebug features. Coverage jobs retain their instrumentation. The consumer verifies a shared 2 CPU / 2 GiB / no-swap cgroup for the parent and four ordinary-user workers before admission.

Verification

Published PHP 8.3 control at 0d51e4a2 passes 38933927928: 64 callbacks/first-attempt activities, 66 completed tasks, exact typed output, original history/deadlines, zero repairs/failed jobs/remaining transport. Wall time was 44.76 seconds inside the original 90-second observer. This original used the ordinary hosted allocation, before the explicit cgroup revision.

The runner reports PHP 8.3.6, SQLite 3.45.1, pcntl enabled and Xdebug 3.2.0 with default develop mode. The passing control explicitly uses XDEBUG_MODE=off. The preceding debugger-enabled published originals remain failed: 32cc completed 51/64; c670 completed 49/64 with 15 pending, zero failed jobs/delivery errors and 94.75 seconds of CPU. This comparison justifies the functional CI configuration; it does not establish every original failure's cause.

Exact 0d51 normal CI and Sonar pass. Final b81af77dd654c233d3d195e4763be294e27e15ff / tree e984e9d65d9a91255e36064940508d322c6e20d7 adds the explicit allocation and passes 38934868452: effective cgroup CPU 200000/100000, memory 2147483648, swap 0, ordinary non-root user, Xdebug effective modes empty and pcntl enabled. Original 01m52sw0nqsn18v5r4776x7t0d completes all 64 first-attempt callbacks/66 tasks in 41.51 seconds, zero repairs/failed jobs/delivery exceptions/remaining entries, exact typed output and preserved original history/deadlines. The four real worker roles are recorded. This is bounded functional acceptance, not capacity or overhead measurement.

Final b81 Sonar, corpus, quality, unit, MySQL feature and boundary checks pass. Merged a51bdf64 has the identical reviewed tree; fresh main 38935660250 finishes with every applicable check passing (25 success, two conditional skips). Its independent main published consumer also passes. Both initial Sonar SQL-formatting findings are independently CLOSED/FIXED after literal queries; the synthetic fixture directory is classified as test code. Sonar reports 0.0% duplication under unchanged 3%. Six nonblocking Bash suggestions prefer [[ over test in the new wrapper. Review found quoted operands from the kernel cgroup and current UID, with no unchecked string expansion. These are style suggestions, not a resource-verification defect; no rule, threshold or assertion was disabled.

The preceding tracing f141 originals remain failed at 48/49 completed activities. They contain unreleased tracing code and are separate from these ordinary published-package controls. This does not qualify tracing, overhead, native behavior or a release. The complete issue acceptance audit is recorded on #809.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 16, 2026 16:53
@rmcdaniel
rmcdaniel merged commit a51bdf6 into main Oct 16, 2026
19 checks passed
@rmcdaniel
rmcdaniel deleted the fix/published-fanout-observer branch October 16, 2026 16:55
@rmcdaniel

Copy link
Copy Markdown
Member Author

#818 is merged at a51bdf64e69caa2ec2ab8223f8720482b4782d15, whole tree e984e9d65d9a91255e36064940508d322c6e20d7, identical to reviewed/tested b81af77d. All applicable candidate normal CI, published consumer, Sonar and boundary checks pass. Remote head is deleted and independently returns HTTP 404.

The normally installed 2.5.27 / PHP 8.3 control verifies every installed runtime byte against its immutable tag. Inside the effective 2 CPU / 2 GiB / no-swap scope, four actual ordinary-user workers complete 64 first-attempt callbacks, 66 tasks and exact bigint/null/Unicode results. Original history and execution/run/observer deadlines remain unchanged. Repairs, failed jobs, delivery errors and leftover transport entries are zero. Original consumer, logical run 01m52sw0nqsn18v5r4776x7t0d, 41.51 seconds wall time. This is functional acceptance, not capacity or overhead measurement.

Fresh main normal checks and an independent published consumer are now running. No result is carried to them. Earlier failed originals retain their outcomes. This PR changes CI and the diagnostic, with no library/version release. #809 final disposition follows these exact main results and its existing acceptance criteria.

The merged clean source checkout and local branch are retired. No local application, database, build or paid experiment is running.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants