-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
False
-
-
False
Bug report
For bug reports, provide this information, please:
What Debezium connector do you use and what version?
MariaDB source connector version 3.0.6.Final
What is the captured database version and mode of deployment?
Mariadb AWS RDS
What behavior do you expect?
The expected behaviour is for the source record to be processed and the correct number of columns to be recognized.
What behavior do you see?
The source record can't be processed and a wrong number of columns is shown.
Do you see the same behaviour using the latest released Debezium version?
yes
Do you have the connector logs, ideally from start till finish?
io.debezium.DebeziumException: Error processing binlog event
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleEvent(BinlogStreamingChangeEventSource.java:591)
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$execute$17(BinlogStreamingChangeEventSource.java:209)
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1281)
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1103)
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:657)
at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:959)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.debezium.DebeziumException: Error processing row in bi_test_table, internal schema size 2, but row size 3 , restart connector with schema recovery mode.
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.validateChangeEventWithTable(BinlogStreamingChangeEventSource.java:1065)
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$handleInsert$28(BinlogStreamingChangeEventSource.java:837)
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleChange(BinlogStreamingChangeEventSource.java:1101)
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleInsert(BinlogStreamingChangeEventSource.java:832)
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$execute$7(BinlogStreamingChangeEventSource.java:183)
at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleEvent(BinlogStreamingChangeEventSource.java:571)
... 6 common frames omitted
Error processing after of row in bi_test_table because it's different column size with internal schema size 2, but after size 3, restart connector with schema recovery mode.
How to reproduce?
DDL:
CREATE TABLE `test_db`.`test_table` ( `id` varchar(255) NOT NULL, `token` varchar(1536) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `token_unique_key` (`token`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
Insert Statement:
INSERT INTO test_table (id, token) VALUES ('1', 'token1');
Notes after testing:
-- fails with varchar(1536) + Unique Key -- doesn't fail with varchar(1536) without Unique Key -- doesn't fail with varchar(255) + Unique Key -- doesn't fail with varchar(255) without Unique Key