Skip to content

[CHORE] Upgrade reqwest and spanner crates#6705

Open
rescrv wants to merge 3 commits intomainfrom
rescrv/upgrade-spanner
Open

[CHORE] Upgrade reqwest and spanner crates#6705
rescrv wants to merge 3 commits intomainfrom
rescrv/upgrade-spanner

Conversation

@rescrv
Copy link
Copy Markdown
Contributor

@rescrv rescrv commented Mar 20, 2026

Description of changes

Update the Rust workspace to the newer reqwest and google-cloud-rust
releases, and adjust affected call sites to match the new APIs.

  • bump reqwest to 0.13 and switch rustls/query features to the
    current names
  • bump google-cloud-rust to v20260319 and populate the new channel
    keepalive fields in spanner client configs
  • pin fastrace crates to compatible versions and update tracing setup
    for the current OpenTelemetry SDK builder API
  • fix test/emulator helpers impacted by upstream API changes,
    including tempfile persistence handling
  • add backoff/retry loops for spanner emulator support to work in CI

Test plan

CI

Migration plan

N/A

Observability plan

N/A

Documentation Changes

N/A

Co-authored-by: AI

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review.

@github-actions
Copy link
Copy Markdown

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
Copy Markdown
Contributor

propel-code-bot bot commented Mar 20, 2026

Upgrade Rust dependencies and align Spanner/reqwest integrations

This PR upgrades Rust workspace dependencies, notably reqwest to 0.13 and google-cloud-rust to v20260319, with corresponding API and configuration updates across Spanner clients, tracing, and CLI download flows. It adds new Spanner channel keepalive settings, introduces an admin RPC timeout constant for long-running DDL operations, and updates emulator/test helpers plus WAL retry handling to cope with aborted transactions in CI.

It also adjusts OpenTelemetry tracer initialization for the latest SDK builder API, pins fastrace crates to compatible versions, and updates tests/fixtures to match new parquet sizes and emulator behaviors. Configuration toggles disable fragment fetch in worker YAML files.

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

propel-code-bot[bot]

This comment was marked as outdated.

@blacksmith-sh

This comment has been minimized.

propel-code-bot[bot]

This comment was marked as outdated.

propel-code-bot[bot]

This comment was marked as outdated.

@blacksmith-sh

This comment has been minimized.

propel-code-bot[bot]

This comment was marked as outdated.

propel-code-bot[bot]

This comment was marked as outdated.

propel-code-bot[bot]

This comment was marked as outdated.

propel-code-bot[bot]

This comment was marked as outdated.

@blacksmith-sh

This comment has been minimized.

propel-code-bot[bot]

This comment was marked as outdated.

@rescrv rescrv requested a review from sanketkedia March 23, 2026 16:26
propel-code-bot[bot]

This comment was marked as outdated.

@rescrv rescrv force-pushed the rescrv/upgrade-spanner branch from e2221a5 to 9c7997e Compare March 25, 2026 17:10
propel-code-bot[bot]

This comment was marked as outdated.

..Default::default()
endpoint: google_cloud_spanner::apiv1::conn_pool::SPANNER.to_string(),
environment: Environment::Emulator(emulator.grpc_endpoint()),
disable_route_to_leader: false,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

what are the semantics of this config?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It will create a connection to an emulated spanner. It also doesn't have a .. Default::default(), which I consider a robustness win.

@rescrv rescrv force-pushed the rescrv/upgrade-spanner branch from 9c7997e to df07735 Compare March 25, 2026 22:45
Copy link
Copy Markdown
Contributor

@propel-code-bot propel-code-bot bot left a comment

Choose a reason for hiding this comment

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

Review found no issues with the dependency upgrades and related updates.

Status: No Issues Found | Risk: Low

Review Details

📁 26 files reviewed | 💬 0 comments

@rescrv rescrv force-pushed the rescrv/upgrade-spanner branch from df07735 to 8dfeb66 Compare March 25, 2026 22:54
@blacksmith-sh
Copy link
Copy Markdown
Contributor

blacksmith-sh bot commented Mar 25, 2026

Found 3 test failures on Blacksmith runners:

Failures

Test View Logs
chroma-index/spann::types::tests::test_long_running_data_integrity View Logs
chroma-index/
spann::types::tests::test_long_running_data_integrity_multiple_parallel_runs
View Logs
chroma-index::hnsw_reload_repro/deleted_heads_can_abort_a_future_reload View Logs

Fix in Cursor

rescrv added 2 commits March 26, 2026 12:19
Update the Rust workspace to the newer reqwest and google-cloud-rust
releases, and adjust affected call sites to match the new APIs.

- bump reqwest to 0.13 and switch rustls/query features to the
  current names
- bump google-cloud-rust to v20260319 and populate the new channel
  keepalive fields in spanner client configs
- pin fastrace crates to compatible versions and update tracing setup
  for the current OpenTelemetry SDK builder API
- fix test/emulator helpers impacted by upstream API changes,
  including tempfile persistence handling

Co-authored-by: AI

annotate as bytes rather than [u8]

explicit config of new params

incompatibility that does not surface on OS X; try it

fix(wal3): retry aborted spanner transactions

The Spanner emulator only supports one transaction at a time, causing
tests to fail with Aborted errors when running in parallel. The
publish_fragment method already had an external retry loop, but init
and apply_garbage did not.

- Add retry-with-backoff loop to ManifestManager::init for Aborted
  transactions, matching the pattern in publish_fragment
- Add retry-with-backoff loop to apply_garbage for Aborted
  transactions
- Add Error::is_aborted() helper to detect Aborted status from both
  TonicError and SpannerSessionError variants
- Update hardcoded parquet fragment sizes in tests (1044 -> 1092)
  to match new parquet output size from upgraded crate

Co-authored-by: AI
@rescrv rescrv force-pushed the rescrv/upgrade-spanner branch from 8dfeb66 to 5b78c16 Compare March 26, 2026 19:19
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