You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During changefeed creation, TiCDC creates an API V2 TiKV store for the keyspace and initializes SchemaStore from the keyspace-v2 minimum service safepoint. PD-CSE does not implement the newer GetGCState RPC, so current client-go falls back to direct etcd reading. Because gc_management_type=keyspace_level_gc is absent, the compatibility loader selects /tidb/store/gcworker/saved_safe_point.
client-go validates the snapshot against transaction safepoint 467969667508994048 (2026-07-27 14:30:11.042 UTC).
meta.ListDatabases() returns error 9006 because snapTs < txnSafePoint.
Cluster, tenant, project, keyspace name, and endpoint identifiers have been omitted from this public report.
What did you expect to see?
SchemaStore and the changefeed should initialize successfully using a transaction safepoint consistent with the keyspace-v2 GC state.
If the snapshot is irrecoverably older than the transaction safepoint, TiCDC should terminate the bootstrap attempt promptly with an actionable error instead of retrying the same timestamp forever.
What did you see instead?
TiCDC continuously reports this warning at approximately 100 ms intervals:
[WARN] [disk_format.go:599] ["list databases failed, retrying"] [error="[tikv:9006]GC life time is shorter than transaction duration, transaction start ts is 467969442615394304 (2026-07-27 14:15:53.141 +0000 UTC), txn safe point is 467969667508994048 (2026-07-27 14:30:11.042 +0000 UTC)"]
The HTTP/TCP/gRPC server and coordinator are running, but SchemaStore initialization for this keyspace does not complete, so the corresponding changefeed create/start path remains blocked.
Technical observations:
persistSchemaSnapshot creates a new snapshot reader on each attempt but always uses the same fixed snapTs.
The ListDatabases error branch sleeps for 100 ms and retries without a bound or context cancellation.
The existing isGCLifeTimeError fast-fail check is only applied to the later table metadata read path.
PD-CSE supports keyspace-v2 GC/service safepoint APIs but not GetGCState, causing client-go to enter its direct-etcd compatibility path.
TiCDC reads a keyspace-v2 minimum service safepoint while client-go visibility validation uses a newer transaction safepoint from the compatibility loader.
schemastore: retry with fresh snapshot after GC #5493 is merged into master and adds fail-fast handling for the ListDatabases GC error. No corresponding backport was found for release-nextgen-202603, which is the release line shown by this repository for v26.3.3.
Align the TiCDC, TiDB/client-go, and PD-CSE GC-state API compatibility set so transaction visibility and SchemaStore snapshot selection use consistent keyspace-scoped state.
What did you do?
Run TiCDC new architecture in a TiDB Cloud Essential environment and create/start a changefeed for a keyspace using GC safepoint v2.
Relevant environment and keyspace configuration:
During changefeed creation, TiCDC creates an API V2 TiKV store for the keyspace and initializes SchemaStore from the keyspace-v2 minimum service safepoint. PD-CSE does not implement the newer
GetGCStateRPC, so current client-go falls back to direct etcd reading. Becausegc_management_type=keyspace_level_gcis absent, the compatibility loader selects/tidb/store/gcworker/saved_safe_point.The following sequence reproduces the failure:
GetGCStatereturns gRPCUnimplemented.467969442615394304(2026-07-27 14:15:53.141 UTC).snapTs.467969667508994048(2026-07-27 14:30:11.042 UTC).meta.ListDatabases()returns error 9006 becausesnapTs < txnSafePoint.Cluster, tenant, project, keyspace name, and endpoint identifiers have been omitted from this public report.
What did you expect to see?
SchemaStore and the changefeed should initialize successfully using a transaction safepoint consistent with the keyspace-v2 GC state.
If the snapshot is irrecoverably older than the transaction safepoint, TiCDC should terminate the bootstrap attempt promptly with an actionable error instead of retrying the same timestamp forever.
What did you see instead?
TiCDC continuously reports this warning at approximately 100 ms intervals:
The HTTP/TCP/gRPC server and coordinator are running, but SchemaStore initialization for this keyspace does not complete, so the corresponding changefeed create/start path remains blocked.
Technical observations:
persistSchemaSnapshotcreates a new snapshot reader on each attempt but always uses the same fixedsnapTs.ListDatabaseserror branch sleeps for 100 ms and retries without a bound or context cancellation.isGCLifeTimeErrorfast-fail check is only applied to the later table metadata read path.GetGCState, causing client-go to enter its direct-etcd compatibility path.Related work:
masterand adds fail-fast handling for theListDatabasesGC error. No corresponding backport was found forrelease-nextgen-202603, which is the release line shown by this repository for v26.3.3.Suggested actions:
safe_point_version=v2, missingGetGCState, and the direct-etcd fallback.Versions of the cluster
Upstream TiDB cluster version (execute
SELECT tidb_version();in a MySQL client):Managed TiDB Cloud Essential version; exact TiDB build is not exposed in the available incident data.Upstream TiKV version (execute
tikv-server --version):Managed TiDB Cloud Essential version; exact TiKV build is not exposed in the available incident data.TiCDC version (execute
cdc version):