-
Notifications
You must be signed in to change notification settings - Fork 41
Description
What did you do?
Timeline observed:
(1) A dispatcher REGISTER arrives and eventStore.RegisterDispatcher() succeeds.
(2) Immediately after, schemaStore.RegisterTable() fails with [CDC:ErrNewStore] new store failed: context canceled (often during PD/TSO client rebuild), so eventBroker.addDispatcher() returns early and the dispatcher is not stored in the broker’s dispatcher map.
(3) The downstream EventCollector receives the Ready event from EventService and sends a RESET request (epoch increments).
(4) EventService handles RESET, but eventBroker.resetDispatcher() cannot find the dispatcher and logs “reset a non-exist dispatcher, ignore it”, so the dispatcher stays at epoch=0/seq=0 (no handshake).
(5) The collector has already marked itself ready and will ignore subsequent Ready signals, so it never retries RESET.
(6) EventService keeps printing “dispatcher not reset” for this dispatcher, and because this table’s progress never advances, the changefeed resolved ts can stall
What did you expect to see?
No response
What did you see instead?
As described above
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)