Skip to content

Conversation

@rescrv
Copy link
Contributor

@rescrv rescrv commented Dec 30, 2025

Description of changes

The most recent spanner changes pull in a dep on tonic::status::[email protected], which is different from
the tonic::[email protected] accessible via the workspace. Update tonic in the workspace to allow
accessing the newest version of Status.

Test plan

CI

Migration plan

None.

Observability plan

N/A

Documentation Changes

N/A

@rescrv rescrv requested a review from sanketkedia December 30, 2025 18:38
@github-actions
Copy link

Reviewer Checklist

Please leverage this checklist to ensure your code review is thorough before approving

Testing, Bugs, Errors, Logs, Documentation

  • Can you think of any use case in which the code does not behave as intended? Have they been tested?
  • Can you think of any inputs or external events that could break the code? Is user input validated and safe? Have they been tested?
  • If appropriate, are there adequate property based tests?
  • If appropriate, are there adequate unit tests?
  • Should any logging, debugging, tracing information be added or removed?
  • Are error messages user-friendly?
  • Have all documentation changes needed been made?
  • Have all non-obvious changes been commented?

System Compatibility

  • Are there any potential impacts on other parts of the system or backward compatibility?
  • Does this change intersect with any items on our roadmap, and if so, is there a plan for fitting them together?

Quality

  • Is this code of a unexpectedly high quality (Readability, Modularity, Intuitiveness)

@propel-code-bot
Copy link
Contributor

propel-code-bot bot commented Dec 30, 2025

The upgrade also refreshes the surrounding gRPC ecosystem crates and retools build tooling and service implementations to align with the updated APIs, including the revised health reporting flows, client channel adjustments, and the newly required Spanner throughput_mode field, so end-to-end validation of the gRPC services remains important.

Key Changes

• Bumped workspace dependencies to tonic 0.14 ecosystem (tonic, tonic-health, tower 0.5, prost 0.14) and introduced tonic-prost crates in manifests
• Updated build tooling to use tonic_prost_build::configure().compile_protos and aligned generated-code dependencies
• Refactored gRPC servers (e.g., rust/rust-sysdb/src/server.rs, rust/log-service/src/lib.rs) for new health reporter API and serve future requirements, boxing the future where necessary
• Adjusted gRPC client tracing and client manager code to the new tonic body and channel change types
• Included throughput_mode flag in Spanner UpdateDatabaseDdlRequest construction to satisfy updated API

Affected Areas

Cargo.toml workspace dependencies
rust/types build tooling
• gRPC servers in rust/rust-sysdb, rust/worker, rust/log-service, rust/garbage_collector, rust/worker/src/compactor
rust/tracing gRPC client trace layer
rust/memberlist client manager
rust/spanner-migrations runner

This summary was automatically generated by @propel-code-bot

@rescrv rescrv force-pushed the rescrv/log-db-schema branch from 4c34c40 to a809fdb Compare December 30, 2025 21:54
@rescrv rescrv force-pushed the rescrv/tonic-upgrade branch from 8983b45 to d901714 Compare December 30, 2025 21:56
@rescrv rescrv force-pushed the rescrv/log-db-schema branch from a809fdb to 46ebbf2 Compare December 30, 2025 23:10
@rescrv rescrv force-pushed the rescrv/tonic-upgrade branch from d901714 to 368def8 Compare December 30, 2025 23:10
@rescrv rescrv force-pushed the rescrv/log-db-schema branch 2 times, most recently from d1e28ae to 742a707 Compare December 31, 2025 01:06
@rescrv rescrv force-pushed the rescrv/tonic-upgrade branch from 368def8 to 2e30f26 Compare December 31, 2025 01:07
@rescrv rescrv force-pushed the rescrv/log-db-schema branch 2 times, most recently from 62532d6 to e4ea26a Compare January 7, 2026 22:31
@rescrv rescrv force-pushed the rescrv/tonic-upgrade branch from 2e30f26 to 093f00b Compare January 7, 2026 23:04
@rescrv rescrv force-pushed the rescrv/log-db-schema branch from e4ea26a to ef9b07f Compare January 8, 2026 19:57
Base automatically changed from rescrv/log-db-schema to main January 8, 2026 20:47
@rescrv rescrv force-pushed the rescrv/tonic-upgrade branch from 093f00b to 07459d5 Compare January 8, 2026 20:50
task::{Context, Poll},
};
use tonic::{body::BoxBody, transport::Error, Code};
use tonic::{body::Body, transport::Error, Code};
Copy link
Contributor

Choose a reason for hiding this comment

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

Critical

[Logic] In tonic 0.14, tonic::body::Body is typically the trait (re-exported from http-body). Using it as a concrete type in Response = http::Response<Body> will likely cause a compilation error because traits cannot be used as concrete types without dyn or Box.

You likely intend to use the concrete body struct tonic::transport::Body (which replaces BoxBody usage in many cases).

Suggested change
use tonic::{body::Body, transport::Error, Code};
use tonic::{transport::{Body, Error}, Code};
Context for Agents
In `tonic` 0.14, `tonic::body::Body` is typically the **trait** (re-exported from `http-body`). Using it as a concrete type in `Response = http::Response<Body>` will likely cause a compilation error because traits cannot be used as concrete types without `dyn` or `Box`.

You likely intend to use the concrete body struct `tonic::transport::Body` (which replaces `BoxBody` usage in many cases).

```suggestion
use tonic::{transport::{Body, Error}, Code};
```

File: rust/tracing/src/grpc_client_trace_layer.rs
Line: 8

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for the suggestion. Code compiles. CI passes. I'm going to disregard you.

@rescrv rescrv merged commit a1641d4 into main Jan 8, 2026
64 checks passed
@rescrv rescrv deleted the rescrv/tonic-upgrade branch January 8, 2026 23:13
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.

3 participants