Skip to content

chore: upgrade gRPC to 1.84.0 - #418

Merged
merlimat merged 3 commits into
oxia-db:mainfrom
merlimat:grpc-1-84-upgrade
Oct 3, 2026
Merged

merlimat merged 3 commits into
oxia-db:mainfrom
merlimat:grpc-1-84-upgrade

Conversation

@merlimat

@merlimat merlimat commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #417 (Netty 4.2.18). Until that merges, this diff also shows its commit. Only chore: upgrade gRPC to 1.84.0 is new here.

Motivation

The client is on gRPC 1.75.0. 1.84.0 is the latest release, and since 1.83.0 grpc-java has been built and tested against Netty 4.2, which the client moves to in #417.

Modifications

  • Bump grpc from 1.75.0 to 1.84.0 in gradle/libs.versions.toml.
  • Bump proto-google-common-protos from 2.59.2 to 2.64.1, the version grpc-protobuf 1.84.0 declares. The client lists it as a direct runtime dependency in its published POM. If it stayed at 2.59.2, Maven's nearest-wins rule would give Maven users 2.59.2 under grpc-protobuf 1.84. Gradle builds already resolved 2.64.1.

Release notes for 1.76 through 1.84, checked against the client:

  • RFC 3986 target parsing is on by default (1.83). Connection passes the server address to Grpc.newChannelBuilder without a scheme (host:port, after removing tls://). In 1.84 the RFC 3986 path keeps the old fallback: a target that doesn't look like scheme:/... is resolved as dns:///<target>. So localhost:6648, 127.0.0.1:6648 and [::1]:6648 resolve as before.
  • Netty 4.2 required (1.83). Netty is 4.2.18.Final from chore: upgrade Netty to 4.2.18.Final #417. grpc-netty 1.84 asks for 4.2.16, and the Netty BOM aligns it to 4.2.18.
  • Other API and behavior changes are in xDS, binder, okhttp, Android, custom LoadBalancers and SPIFFE, none of which the client uses. The one internal class it imports, io.grpc.internal.BackoffPolicy, is unchanged.
  • Transitive updates: guava 33.5.0 → 33.6.0, gson 2.11.0 → 2.14.0, protobuf-java-util 3.25.8 → 3.25.9, animal-sniffer-annotations 1.24 → 1.27. protobuf-java stays at 4.34.0, set by the existing constraint.

Verification

  • ./gradlew :client:dependencies --configuration runtimeClasspath resolves all 10 io.grpc modules to 1.84.0 and all 15 io.netty modules to 4.2.18.Final. The generated POM lists proto-google-common-protos 2.64.1.
  • ./gradlew build passes locally: 393 tests, no failures or skips, and no new compiler warnings. That includes all 7 Docker IT classes against a real Oxia server: OxiaClientIT, ClientReconnectIT, OxiaClientFailFastIT, RpcProviderIT, ShardSplitSessionIT, SharedResourcesIT and NotificationIt.

Signed-off-by: Matteo Merli <mmerli@apache.org>
Signed-off-by: Matteo Merli <mmerli@apache.org>
@merlimat
merlimat merged commit 412ba48 into oxia-db:main Oct 3, 2026
2 checks passed
@merlimat
merlimat deleted the grpc-1-84-upgrade branch October 3, 2026 17:39
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.

1 participant