pingcap / pingcap/tidb

`getOracleFuture` won't retry internally

Open
#61,178 1 comment 0 reactions 0 assignees View on GitHub
type/bug
Dominant language
Go
Stars
40.5k
Forks
6.2k
PR merge metrics
PR metrics pending

Description

## Bug Report

https://github.com/pingcap/tidb/pull/35376 changed the behaviour for getting TSO. Previously, we used https://github.com/pingcap/tidb/pull/35376/files#diff-cda21674d674295dde958bfdfe5d6ecd21ae07fd310fa907920e1214108d974fL754 to get the timestamp, which will retry internally. After this PR, we use an asynchronous way to get the timestamp. If the PD leader changed, it will return an error directly instead of retrying.

Contributor guide

Open the contributing guide

Research direction

Start at getOracleFuture and compare its asynchronous timestamp path with the earlier retrying behavior described in PR 35376. Trace how a PD leader change is handled; done means the operation retries internally instead of returning the leader-change error immediately.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.