Repository navigation
config: align native Rust configuration behavior with Go - #1414
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review: 1
Please check the settings in the CodeRabbit UI or the
|
Co-authored-by: Cursor <cursoragent@cursor.com>
PD serves gRPC and HTTP/1.1 on the same port. Without h2 ALPN the server answers HTTP/1.1 and the HTTP/2 client reports FRAME_SIZE_ERROR.
Go skips metering for an empty keyspace and still proxies the session. The Rust handshake treated that classic topology as a proxy error, so every connection closed before a backend was attached.
The queue TTL was stamped as an absolute handshake deadline at acceptance, so a transaction held longer than that TTL failed the migration after commit.
The snapshot builder now follows Go's minimum TLS versions, but the control-plane anchor still required the old rejection text. An empty keyspace is classic topology, so the session stays up and metering stays detached instead of failing the handshake. Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## rust #1414 +/- ##
=======================================
Coverage ? 58.58%
=======================================
Files ? 214
Lines ? 29839
Branches ? 0
=======================================
Hits ? 17481
Misses ? 10876
Partials ? 1482
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Pinned tokio, rustls, socket2, and futures-util were behind patched releases. The newer futures-util no longer pulls unmaintained pin-utils, and tokio-macros stays on the syn 2 line so the lockfile does not gain a second syn. Co-authored-by: Cursor <cursoragent@cursor.com>
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: YangKeao The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
[LGTM Timeline notifier]Timeline:
|
What problem does this PR solve?
Issue Number: close #1408
Problem Summary:
A Go configuration cannot start the native Rust process. Validation, reload policy, CLI flags, and a few runtime paths differ from the Go implementation.
What is changed and how it works:
enable-traffic-replay = trueand still start SQL serving; capture and replay stay unimplemented.security.encryption-key-pathfor checksum compatibility and do not require the key at startup.Config.Checkfor TLS minimum versions, relative paths, and a certificate without its key; the native handshake floor stays TLS 1.2.cluster-tls.skip-ca = trueon TLS without a CA, and verify PD certificates by CA only.h2so PD answers with gRPC.--advertise-addrand--config-info json, and publish a machine-readable reload/effect contract.api.proxy-protocol = v2and the HA GARP fields as explicitly unsupported or inert.balance.routing-rulefor routers created after the change, matching the Go process.Check List
Tests
Notable changes
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.