*: bump client-go to include the busy-leader probe fix (#2041) (#2044) - #70370
*: bump client-go to include the busy-leader probe fix (#2041) (#2044)#70370ekexium wants to merge 1 commit into
Conversation
|
This cherry pick PR is for a release branch and has not yet been approved by triage owners. To merge this cherry pick:
DetailsInstructions 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. |
📝 WalkthroughWalkthroughThe pull request updates Changesclient-go dependency update
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Updates TiDB’s TiKV client dependency and aligns the repository’s Go toolchain to satisfy the updated client-go minimum Go requirement (release-8.5). This is primarily a dependency/toolchain maintenance change intended to pick up a client-go fix for “busy leader probe” behavior and related client improvements.
Changes:
- Bump
github.com/tikv/client-go/v2tov2.0.8-0.20260806041825-494edbd79be9ingo.mod/go.sum. - Update Bazel dependency metadata for the new client-go version in
DEPS.bzl. - Bump Go toolchain references from
1.25.10to1.25.12across build and image definitions (Go module, Bazel SDK, Dockerfiles, and build images).
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| WORKSPACE | Updates Bazel go_download_sdk version to Go 1.25.12. |
| Makefile.common | Updates GOTOOLCHAIN to go1.25.12 for local builds. |
| go.mod | Bumps Go directive to 1.25.12 and updates client-go dependency version. |
| go.sum | Updates checksums for the bumped client-go version. |
| DEPS.bzl | Updates Bazel go_repository entry (strip prefix/sha256/URLs) for new client-go version. |
| Dockerfile | Updates builder image to golang:1.25.12. |
| Dockerfile.enterprise | Updates builder image to golang:1.25.12. |
| build/image/base | Updates base image build ARG GOLANG_VERSION to 1.25.12. |
| build/image/parser_test | Updates parser test image GOLANG_VERSION to 1.25.12. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…pingcap#2044) Bump github.com/tikv/client-go/v2 from v2.0.8-0.20260803075849-c3b50791b9fb to v2.0.8-0.20260806041825-494edbd79be9 on tidb-8.5, on top of the previous bump in pingcap#70303. This brings: - internal/locate: probe follower once when the cached leader keeps rejecting leader reads with ServerIsBusy(0) (pingcap#2041) (pingcap#2044): when a store's read pool is wedged, leader reads are rejected with ServerIsBusy(0) at the pool entrance so no NotLeader is returned even if PD has moved the leader away; after 2 such rejections the selector probes a follower once and heals the stale leader cache via the NotLeader hint (ref tikv/client-go#2028) Signed-off-by: Ziqian Qin <eke@fastmail.com>
4d0d7f8 to
a78bf6a
Compare
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## release-8.5 #70370 +/- ##
================================================
Coverage ? 55.1637%
================================================
Files ? 1852
Lines ? 666956
Branches ? 0
================================================
Hits ? 367918
Misses ? 271629
Partials ? 27409
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cfzjywxk, zyguan 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 |
What problem does this PR solve?
Bump
github.com/tikv/client-go/v2fromv2.0.8-0.20260803075849-c3b50791b9fbtov2.0.8-0.20260806041825-494edbd79be9on tidb-8.5, on top of the previous bump in #70303.This brings the busy-leader probe fix (tikv/client-go#2041, cherry-picked as tikv/client-go#2044) which addresses tikv/client-go#2028: when a TiKV store's unified read pool is wedged, leader reads are rejected with
ServerIsBusy(EstimatedWaitMs=0)at the pool entrance, so the request never reaches the raft layer and noNotLeadererror is returned even if PD has already moved the leader away. The client then retries the stale cached leader indefinitely. After 2 consecutive such rejections within one selector, the client now probes a follower once with unchanged leader-read semantics; the follower'sNotLeaderreply with the real leader hint heals the shared region cache.What is changed and how it works?
go.mod/go.sum: client-go version bump (3 files, 5 lines changed total)DEPS.bzl: bazel dependency entry for the new versionGo toolchain was already bumped to 1.25.12 by #70219 / #70303; no code changes needed.
Check List
Tests:
go build ./...passes (only the pre-existing unrelatedtools/patch-go/plugin/conn_ip_examplenoise)Release note
Summary by CodeRabbit