Skip to content

Send application logs to stderr across Server deployment paths - #623

Merged
rmcdaniel merged 8 commits into
mainfrom
fix/618-container-logging
Oct 22, 2026
Merged

rmcdaniel merged 8 commits into
mainfrom
fix/618-container-logging

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Refs #618. Keep that issue open until actual produced-image and chart acceptance.

Delivery is incorporated into the current Server 2.11 candidate #564 at aefb8698e for fresh combined qualification. This PR will close as delivered after that merge; its unpublished intermediate chart 0.2.4 is not released. See the integration receipt below for exact source identity and preserved original results.

Change

Default image, raw Kubernetes and Helm logging to LOG_CHANNEL=stderr; preserve explicit channel overrides and severity. Document LOG_STDERR_FORMATTER=Monolog\Formatter\JsonFormatter and remove the unused DW_LOG_FORMAT example. Chart source metadata advances to 0.2.4 because published 0.2.3 is immutable.

Normal publication and recovery of releases containing the acceptance helper require actual API, worker and scheduler logging checks before chart publication. Older immutable releases retain their historical recovery contract. Standard job-scoped labels and tolerant always() deletion cover partial setup/cancellation; the pre-bootstrap container is stopped and renamed before replacement. Recovery requires the complete verification job to succeed.

Evidence and limits

  • Controlled published Server 2.10.0 image 446ab3bbff97deabb8c1c4dbb5dbf2361063a2013a0b00366b5dbc67b4b0a3c4 fails six stderr checks; explicit file logging and severity filtering pass. This older baseline is not attributed to 2.10.1.
  • A configuration-only prototype changing only LOG_CHANNEL=stderr passes all eight real-process checks. A foreign-labelled volume is refused before bootstrap and preserved. These do not qualify a newly built source image. The earlier seeders-hidden-by-bind setup remains unsuccessful.
  • Corrected isolation policy and all 72 controls pass locally. All 28 Helm release controls pass, including refusal when overall recovery fails/cancels/skips despite successful individual outputs. Syntax/diff checks pass.
  • Current head cc4dba7d7bcd5250bf3856cf09a904edc0d06155, whole b1b078346511e6bdcaf2f445c50939d4cba07334, integrates exact Security main fbef60962 without altering its conformance proxy/native/shared changes. The net logging diff remains scoped to 16 files.
  • Current Sonar, both chart source/install checks, HTTP topology and bounded-growth contract pass. Required feature/repository qualification and remaining normal checks are pending. Earlier 17f15b114 Sonar API review found zero open/confirmed issues and three explicitly accepted serial-I/O recommendations. No profile or threshold relaxation and no carried whole-tree pass.
  • Earlier immutable-chart and cleanup-policy failures remain failed. The later Helm failure was reproduced in the old condition evaluator, before chart rendering; the guard was retained and evaluator coverage corrected in b0e425144. Perf attempt 1 was mistakenly cancelled and its aggregate failed; unchanged attempt 2 remains its own 17f15b114 run. Current-head normal checks remain independent.

The final protected release must exercise its actual produced image. This PR publishes no new Server image/chart by itself; #564 supplies the subsequent release/consumer follow-through. Website #352 is delivered and actually verified on all eight language pages (publishing 39697387144, Pages 39698271387). All local prototype/browser/lint resources and raw outputs are removed; only pushed active source remains.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Exact ee079e786 retained two qualification failures: immutable chart-version enforcement (the logging default cannot reuse published chart 0.2.3), and cleanup-policy rejection of my new first-run steps. The source now uses chart 0.2.4. The prospective workflow correction uses standard job-scoped resource labels, separate tolerant always() deletion, and stops/renames the pre-bootstrap container before its replacement. Historical release detection remains a read-only source lookup.

The corrected isolation policy and all 72 existing controls pass locally; shell syntax and diff checks pass. No policy, assertion, threshold or native/shared source is relaxed. Fresh exact-head gates are required; neither failed original is a pass.

@rmcdaniel

Copy link
Copy Markdown
Member Author

CI correction: I cancelled current Server Perf 39697978242 as optional, which also failed its source-qualification aggregate because both bounded-growth and polling-cache jobs were cancelled. That classification was mistaken for the intended Dockerfile qualification route. Attempt 1 remains cancelled/failed, not passed.

One exact-head attempt 2 is now submitted at unchanged 17f15b1143344d75644ec0720ff6e64c6f2885ac, with the normal workflow, limits and assertions. No source, threshold or expectation is changed. Source merge still waits for the required PHP/repository, chart and normal source-qualification outcomes. The unrelated query-topology cancellation remains separately recorded.

@rmcdaniel

Copy link
Copy Markdown
Member Author

The 17f15b114 Helm job's second failure is now reproduced locally: the existing Python condition evaluator rejected the newly required needs.verify.result field, so five subcases failed before chart rendering. The chart 0.2.4 metadata itself was not the cause of this second failure.

Current source b0e425144 changes only that test helper and adds explicit coverage requiring complete verification-job success even when individual outputs say success. Failed/cancelled/skipped/missing whole-job results remain refused. All 28 Helm release controls now pass locally; production guards and assertions remain intact. Fresh whole-head qualification remains pending; prior failed/cancelled originals and exact-head Perf attempt 2 remain separate.

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 22, 2026 00:37
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Main has advanced to bedd60b4c with the native owner's isolated #626 correction. Logging is now incorporated into the Server 2.11 candidate #564 at aefb8698e792c4cf0c5cc58ae7072e0123120a34 / whole e5821c4e9fae5ae9fd56deccd7f8370d3f935afd for fresh combined qualification.

The only merge conflicts were the unpublished chart source version. The combined release retains Server 2.11.0 / chart 0.3.0 and includes the logging change in its chart notes. Native tree, shared runner and frozen fixtures match main exactly. Source metadata synchronization and all 28 Helm controls pass locally; the test's OCI message is mocked, not publication.

This PR's exact cc4dba7d7 feature/chart/performance/source and Sonar results remain their own evidence; CodeQL Actions was still active at integration. No pass is carried to the combined tree, and its admitted original is left intact. #623 will close as delivered after #564 merges, with #618 retained through actual produced-image/chart acceptance. No interim 0.2.4 chart or logging-only Server image is published.

@rmcdaniel
rmcdaniel merged commit aefb869 into main Oct 22, 2026
20 checks passed
@rmcdaniel
rmcdaniel deleted the fix/618-container-logging branch October 22, 2026 01:56
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