client-go icon indicating copy to clipboard operation
client-go copied to clipboard

upgrade grpc to v1.73

Open joechenrh opened this issue 2 months ago • 9 comments

From v1.66, WithRecvBufferPool has been renamed to WithBufferPool. Besides, buffer pool is enabled by default. That is, the default buffer pool of client is changed from nopBufferPool to tieredBufferPool. As this option was introduced in https://github.com/tikv/client-go/pull/1132, and not enabled in TiKV, we keep the old logic to use a NopBufferPool as default value.

Why upgrade grpc

Because we are using some expermential API that was already renamed. This will block those libraries that depend on this to use newer version of grpc. (And I found someone has already want to do this: https://github.com/tikv/client-go/pull/1672)

joechenrh avatar Oct 30 '25 07:10 joechenrh

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please assign iosmanthus for approval. For more information see the Code Review Process. Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

ti-chi-bot[bot] avatar Oct 30 '25 07:10 ti-chi-bot[bot]

Welcome @joechenrh!

It looks like this is your first PR to tikv/client-go 🎉.

I'm the bot to help you request reviewers, add labels and more, See available commands.

We want to make sure your contribution gets all the attention it needs!



Thank you, and welcome to tikv/client-go. :smiley:

ti-chi-bot[bot] avatar Oct 30 '25 07:10 ti-chi-bot[bot]

/hold

joechenrh avatar Oct 30 '25 08:10 joechenrh

/ok-to-test

joechenrh avatar Nov 04 '25 05:11 joechenrh

@joechenrh: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to this:

/ok-to-test

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

ti-chi-bot[bot] avatar Nov 04 '25 05:11 ti-chi-bot[bot]

/unhold

joechenrh avatar Nov 04 '25 05:11 joechenrh

/run-all-tests

joechenrh avatar Nov 04 '25 06:11 joechenrh

Previously, grpc was upgraded to 1.64 and reverted (by https://github.com/tikv/client-go/pull/1369) due to errors in TiFlash regression tests. So I keep using old API DialContext here.

I've ran a test internally with this branch. The plan ID is 7972306, and you can check the result.

rpc error: code = DeadlineExceeded desc = received context error while waiting for new LB policy update: context deadline exceeded
rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing: dial tcp 10.200.86.26:3930: i/o timeout

(Although I suspect that error is not related to grpc API change because it seems like we couldn't connect to 10.200.86.26:3930. That is, the first mistake was the result, and the second mistake was the cause, as resolver didn't provide any address to LB.)

joechenrh avatar Nov 04 '25 06:11 joechenrh

This would fix #1789, right?

dveeden avatar Nov 23 '25 10:11 dveeden