flink-cdc icon indicating copy to clipboard operation
flink-cdc copied to clipboard

[hotfix] Fix lenient schema evolution failure with route blocks

Open yuxiqian opened this issue 1 year ago • 0 comments

We should applySchemaChange (where the route rule works) first and lenientize its result then, or we may not be able to get evolved schema since tableId isn't routed:

Caused by: java.lang.IllegalStateException: Evolved schema does not exist, not ready for schema change event AddColumnEvent{tableId=kunni_test.customers, addedColumns=[ColumnWithPosition{column=`newCol2` VARCHAR(100), position=AFTER, existedColumnName=newCol}]}
	at org.apache.flink.cdc.runtime.operators.schema.coordinator.SchemaRegistryRequestHandler.lambda$lenientizeSchemaChangeEvent$3(SchemaRegistryRequestHandler.java:378)
	at java.util.Optional.orElseThrow(Optional.java:290)
	at org.apache.flink.cdc.runtime.operators.schema.coordinator.SchemaRegistryRequestHandler.lenientizeSchemaChangeEvent(SchemaRegistryRequestHandler.java:376)
	at org.apache.flink.cdc.runtime.operators.schema.coordinator.SchemaRegistryRequestHandler.calculateDerivedSchemaChangeEvents(SchemaRegistryRequestHandler.java:360)
	at org.apache.flink.cdc.runtime.operators.schema.coordinator.SchemaRegistryRequestHandler.handleSchemaChangeRequest(SchemaRegistryRequestHandler.java:184)
	at org.apache.flink.cdc.runtime.operators.schema.coordinator.SchemaRegistry.lambda$handleCoordinationRequest$3(SchemaRegistry.java:273)
	... 4 more

yuxiqian avatar Aug 29 '24 04:08 yuxiqian