Repository navigation
feat(grpc): upgrade to Tonic 0.12 and native HTTP 1 types - #26770
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
Static review identified no concrete regression in transport integration, body forwarding, acknowledgements, or Pub/Sub lifecycle and TLS handling. Runtime behavior remains unverified.
🤖 Bits Code Review · Commit 30fcc31
30fcc31 to
3a5a4d7
Compare
05bebb3 to
7fc9d92
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c930517cc3
ℹ️ 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".
c930517 to
d323d44
Compare
There was a problem hiding this comment.
HTTPS API connections lose automatic TLS configuration after the Tonic upgrade. Pub/Sub also rejects usable CA bundles when native certificate loading reports a recoverable directory error.
🤖 Bits Code Review · Commit c930517
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 854900dab1
ℹ️ 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".
Summary
crate::http::GRPC_MAX_HEADER_LIST_SIZE. Protobuf schemas and configuration do not change.tls.server_namethrough CONNECT proxies; Pub/Sub classifies stream resets again and trusts every CA intls.ca_file.vectorandopentelemetrysources now answer unregistered gRPC services withgrpc-status: 12instead of HTTP 404. Tonic 0.12 adds theUNIMPLEMENTEDfallback toRoutes::default(), which these sources use; Tonic 0.11 had none, so each such request logged an error and incrementedcomponent_errors_total.vector topkey-capture fix are not in this PR. They fix bugs already on master and go in separate PRs.This is part 3 of the Tonic upgrade. Part 4 handles the separate Tonic 0.14 body API and protobuf codec/generator split.
The HTTP crate versions change; gRPC remains HTTP/2 on the wire.
References
httpcrate to version 1.0.0 #19179Vector configuration
The real-process checks used temporary data directories, ephemeral loopback ports, YAML configurations, and controlled local peers. Representative receiver configuration:
Separate scenarios exercised verified TLS, authenticated forward/CONNECT/TLS proxies, OTLP gRPC and HTTP producers, an official pinned Pub/Sub emulator, a real pinned Datadog trace agent, and the antithesis oracle. Pub/Sub TLS used a SAN-valid localhost certificate, a two-CA bundle with its issuer first, and an empty platform trust-store control.
How did you test this PR?
vectorandopentelemetrygRPC listeners return HTTP 200 withgrpc-status: 12and log no error. Master returns HTTP 404 and logsGrpc error.for the same requests.http0.2,http-body0.4, or Hyper 0.14. SDK-owned Tonic versions are unchanged.Installed-release interoperability
Ran five Vector processes on macOS arm64. A, C, and E used the installed
/opt/homebrew/bin/vectorversion0.60.0(0d0b358). B and D used a fresh branch build,0.61.0-devat854900dab1, built withcargo vdev runand the relay configuration's minimum features. Every link used a Vector sink and source over plaintext loopback.flowchart LR A["A: installed"] --> B["B: branch"] B --> C["C: installed"] C --> D["D: branch"] D --> E["E: installed"]Compared every event and field, including nested objects, arrays, Unicode, nulls, booleans, floats, signed 64-bit limits, nanosecond timestamps, and 64 KiB payloads. Canonical JSON output checksums matched the expected data in all three runs. All processes exited with code 0 and logged no runtime errors.
Vector sink acknowledgements were enabled throughout. The only warning was that A's
stdinsource cannot acknowledge its producer; this check does not establish upstream durability. This scenario covered JSON logs, not metrics or TLS.Temporary runtime drivers, credentials, certificates, and generated Rust stubs are not part of this PR.
Does this PR include user facing changes?
no-changeloglabel to this PR.