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)