Skip to content

Renew gRPC and REST connections after max_connection_age - #6547

Merged
guilload merged 1 commit into
mainfrom
guilload/expire-in-flight-connections
Jul 7, 2026
Merged

Renew gRPC and REST connections after max_connection_age#6547
guilload merged 1 commit into
mainfrom
guilload/expire-in-flight-connections

Conversation

@guilload

Copy link
Copy Markdown
Member

Description

Renew gRPC and REST connections after max_connection_age when set so hot-reloads of mTLS certs, keys, etc. takes effect.

How was this PR tested?

Added unit and integration tests

@guilload
guilload force-pushed the guilload/expire-in-flight-connections branch 3 times, most recently from 34ce5f1 to 204b588 Compare June 29, 2026 21:29
@guilload
guilload marked this pull request as ready for review June 29, 2026 21:30
@guilload
guilload requested review from a team as code owners June 29, 2026 21:30
@guilload
guilload requested a review from trinity-1686a June 29, 2026 21:30

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 204b588544

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread quickwit/quickwit-serve/src/rest.rs
Comment thread quickwit/quickwit-serve/src/rest.rs Outdated
Comment thread quickwit/quickwit-integration-tests/src/tests/tls_tests.rs
@guilload
guilload force-pushed the guilload/expire-in-flight-connections branch from 204b588 to fca4b8e Compare July 7, 2026 20:37
@guilload
guilload enabled auto-merge (squash) July 7, 2026 20:41

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

https://github.com/quickwit-oss/quickwit/blob/fca4b8e845340dbd9dfca7bbbafd13cfc4befaba/quickwit-integration-tests/src/tests/tls_tests.rs#L402
P2 Badge Poll for certificate reload before asserting

This assertion assumes that quickwit_serve::reload_tls_cert() has completed by the time the max-age connection closes, but that call only notifies the background reload task and returns before the blocking reload necessarily runs. On a slow CI worker the reconnect can still negotiate server1_der and fail this test even though the feature works; the hot-reload test below avoids this race by polling until the rotated certificate is served.

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread config/quickwit.yaml
# cert_poll_interval: 5m
# # Maximum lifetime of a connection before the server sends an HTTP/2 GOAWAY and the
# # client reconnects. Disabled when unset.
# max_connection_age: 30m

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Move max-age options out of tls

These sample entries are indented under tls: (same level as cert_poll_interval), but the new fields are parsed as rest.max_connection_age/grpc.max_connection_age siblings of tls, not as members of TlsConfig. Since TlsConfig denies unknown fields, uncommenting this documented snippet (and the analogous gRPC lines below) makes startup fail with an unknown max_connection_age under tls; move both max-age keys out to the rest/grpc level.

Useful? React with 👍 / 👎.

@guilload
guilload merged commit feb2c04 into main Jul 7, 2026
9 checks passed
@guilload
guilload deleted the guilload/expire-in-flight-connections branch July 7, 2026 20:51
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