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)

Reply via email to