Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-9202

Error processing binlog event

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • 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

       

              Unassigned Unassigned
              daniel.petrov.01 Daniel Petrov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: