hk__lrzy created FLINK-35463:
--------------------------------
Summary: CDC job failed when restored from checkpoint when route
rule changed.
Key: FLINK-35463
URL: https://issues.apache.org/jira/browse/FLINK-35463
Project: Flink
Issue Type: Improvement
Components: Flink CDC
Reporter: hk__lrzy
*Exception:*
{code:java}
java.lang.IllegalStateException: Unable to get latest schema for table
"demo.partition_all" {code}
*Reason:*
Now *ScheamRegister* will stored the all original tables which from source and
all derivered table which from route rules.
Assume we have a table in mysql which named *demo.partition_all* and have route
rule *demo1.partition_all* for it.
1. Before first checkpoint be triggered, *ScheamRegister* will store both
*demo.partition_all* and {*}demo1.partition_all{*}'s schema in the
{*}SchemaManager{*}.
2. Stop the job, change route rule as {*}demo1.partition_all_1{*}, and restart
it with checkpoint.
3. According the logical follow:
{code:java}
if (request.getSchemaChangeEvent() instanceof CreateTableEvent
&& schemaManager.schemaExists(request.getTableId())) {
return CompletableFuture.completedFuture(
wrap(new SchemaChangeResponse(Collections.emptyList())));
} {code}
We will not create a schema for the table *demo1.partition_all_1* and job will
be failed when we request schema from {*}SchemaOperator{*}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)