puller may got stuck in some cases #12081
Labels
affects-8.5
This bug affects the 8.5.x(LTS) versions.
area/ticdc
Issues or PRs related to TiCDC.
severity/moderate
type/bug
The issue is confirmed as a bug.
What did you do?
In tikv side, to distinguish connections from different versions of cdc, it maintains a feature list for a every connection.
And tikv use the first request from each connection to set the feature list of the connection.
https://github.com/tikv/tikv/blob/a34740fefaf69092d14f6af5160e8e5ff1c507f8/components/cdc/src/service.rs#L450
If the connection doesn't enable
FeatureGate::BATCH_RESOLVED_TS
, it won't get any resolved ts message.https://github.com/tikv/tikv/blob/a34740fefaf69092d14f6af5160e8e5ff1c507f8/components/cdc/src/endpoint.rs#L443
FeatureGate::BATCH_RESOLVED_TS
is enabled when the cdc version in the request header is larger than 4.0.8.But in cdc side, the deregister request's header doesn't have cdc version information. So if the first request of a connection is a deregister request, the connection can never get any resolved ts message.
This problem happens when dispatcher register and deregister happens in a very short time.
Detail steps:
FeatureGate::BATCH_RESOLVED_TS
of the connection, so this connection will never receive any resolved ts.What did you expect to see?
No response
What did you see instead?
puller never receive any resolved ts message.
Versions of the cluster
Upstream TiDB cluster version (execute
SELECT tidb_version();
in a MySQL client):(paste TiDB cluster version here)
Upstream TiKV version (execute
tikv-server --version
):(paste TiKV version here)
TiCDC version (execute
cdc version
):(paste TiCDC version here)
The text was updated successfully, but these errors were encountered: