Skip to content

🐛 fix(logging): register channels before preparing reload routes - #323

Merged
dorianverlaine merged 1 commit into
mainfrom
codex/fix-322-log-channel-reload
Oct 9, 2026
Merged

dorianverlaine merged 1 commit into
mainfrom
codex/fix-322-log-channel-reload

Conversation

@dorianverlaine

Copy link
Copy Markdown
Owner

📝 What this changes

Register newly declared access-log channels before building listener routes on reload, including the first listeners loaded through Admin. Sites can write to channels declared in the same configuration without a restart.

Closes #322.

🤔 Why

The previous ordering built and published site states before registering their log destinations. Reload succeeded and created the file, but the sites retained no logger for it.

🔬 Evidence

  • Both new real-binary Pingclairfile tests failed on the original code with an empty log, then passed after the fix. They cover Admin and SIGUSR1 reloads, including a second reload that switches to another newly declared channel.
  • just ci: 2,071 tests passed, 10 skipped; lint and benchmark smoke passed. The run used a temporary PINGCLAIR_TLS_STORE because the sandbox prevents an existing port-conflict test from accessing the default store. The initial run preserved this environment failure: 2,070 passed, one failed before its port assertion.
  • git diff --check passed.

🔀 Both transports?

H1/H2 and H3 consume the same prepared site states. Real-binary regressions exercise HTTP/1.1; H3 was not separately exercised for this ordering change.

📚 Documentation

README and CHANGELOG describe newly declared log channels becoming usable on reload.

🤖 Which AI helped?

Codex implemented the change and ran validation.

Resolve newly declared access-log destinations before building listener states on reload. Cover Admin and signal reloads with real-binary Pingclairfile regressions.

Fixes #322

Co-authored-by: Codex <codex@openai.com>
@dorianverlaine
dorianverlaine merged commit a2668f6 into main Oct 9, 2026
12 checks passed
@dorianverlaine
dorianverlaine deleted the codex/fix-322-log-channel-reload branch October 9, 2026 07:14
dorianverlaine added a commit that referenced this pull request Oct 9, 2026
Resolve newly declared access-log destinations before building listener states on reload. Cover Admin and signal reloads with real-binary Pingclairfile regressions.

Fixes #322

Co-authored-by: Codex <codex@openai.com>
dorianverlaine added a commit that referenced this pull request Oct 9, 2026
帶進 main 的三個提交:release 頁首行、log channel 在 reload 路由前註冊的
修復(#323),以及 listener 可允許下劃線命名字段的新配置能力(含 proxy
header alias 與 integration 測試)。

# Conflicts:
#	pingclair-config/src/caddyfile/adapter/underscore_headers.rs
#	pingclair-config/src/compiler.rs
#	pingclair-config/src/lib.rs
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.

🐛 [logging] a log channel declared by reload never reaches the sites (a restart is required)

1 participant