[ https://issues.apache.org/jira/browse/FLINK-37774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yanquan Lv resolved FLINK-37774. -------------------------------- Fix Version/s: cdc-3.5.0 Assignee: Sergei Morozov Resolution: Fixed Fixed in master via 6b8c5f3cf480ec0f5de1635c80c8e3f2634cdb1b. > SQL Server CDC connector incorrectly handles special characters in database > and table names > ------------------------------------------------------------------------------------------- > > Key: FLINK-37774 > URL: https://issues.apache.org/jira/browse/FLINK-37774 > Project: Flink > Issue Type: Bug > Components: Flink CDC > Affects Versions: cdc-3.3.0 > Reporter: Sergei Morozov > Assignee: Sergei Morozov > Priority: Major > Labels: pull-request-available > Fix For: cdc-3.5.0 > > > If a SQL Server database name contains special characters (e.g. a space), the > connector will fail to read the list of tables: > {quote}Read list of available tables in each database > skipping database 'TEST DATABASE' due to error reading tables: Incorrect > syntax near '.'. > {quote} > The second problem is that {{TableId}} s that contain special characters are > incorrectly serialized as part of the snapshot splits. For the above name, > there will be the following exception: > {quote}java.lang.IllegalArgumentException: Unexpected input: D > at > io.debezium.relational.TableIdParser$ParsingState$3.handleCharacter(TableIdParser.java:144) > at > io.debezium.relational.TableIdParser$TableIdTokenizer.tokenize(TableIdParser.java:64) > at io.debezium.text.TokenStream.start(TokenStream.java:446) > at io.debezium.relational.TableIdParser.parse(TableIdParser.java:31) > at io.debezium.relational.TableId.parseParts(TableId.java:51) > at io.debezium.relational.TableId.parse(TableId.java:40) > at > com.ververica.cdc.connectors.base.source.meta.split.SourceSplitSerializer.readTableSchemas(SourceSplitSerializer.java:204) > at > com.ververica.cdc.connectors.base.source.meta.split.SourceSplitSerializer.deserializeSplit(SourceSplitSerializer.java:142) > at > com.ververica.cdc.connectors.base.source.meta.split.SourceSplitSerializer.deserialize(SourceSplitSerializer.java:121) > at > com.ververica.cdc.connectors.base.source.meta.split.SourceSplitSerializer.deserialize(SourceSplitSerializer.java:44) > at > org.apache.flink.runtime.source.event.AddSplitEvent.splits(AddSplitEvent.java:52) > at > org.apache.flink.streaming.api.operators.SourceOperator.handleAddSplitsEvent(SourceOperator.java:538) > at > org.apache.flink.streaming.api.operators.SourceOperator.handleOperatorEvent(SourceOperator.java:526) > at > org.apache.flink.streaming.runtime.tasks.OperatorEventDispatcherImpl.dispatchEventToHandlers(OperatorEventDispatcherImpl.java:71) > at > org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.dispatchOperatorEvent(RegularOperatorChain.java:80) > at > org.apache.flink.streaming.runtime.tasks.StreamTask.lambda$dispatchOperatorEvent$18(StreamTask.java:1430) > at > org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$1.runThrowing(StreamTaskActionExecutor.java:50) > at org.apache.flink.streaming.runtime.tasks.mailbox.Mail.run(Mail.java:90) > at > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.processMailsWhenDefaultActionUnavailable(MailboxProcessor.java:338) > at > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.processMail(MailboxProcessor.java:324) > at > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:201) > at > org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:807) > at > org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:756) > at > org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:948) > at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:927) > at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:741) > at org.apache.flink.runtime.taskmanager.Task.run(Task.java:563) > at java.base/java.lang.Thread.run(Thread.java:831) > {quote} > The above stack trace is from Flink CDC 2.4, but the problem should be > reproducible on 3.3 as well. -- This message was sent by Atlassian Jira (v8.20.10#820010)