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

Debezium Embedded with Mariadb Connector - gtidSet NPE

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • Important

      Bug report

      What Debezium connector do you use and what version?

      io.debezium.connector.mariadb.MariaDbConnector:3.2.0.Final

      debezium-connector-binlog:3.2.0.Final

      What is the connector configuration?

       

      io.debezium.config.Configuration.create()
             .with("name", "mariadb-connector")
             .with("connector.class", "io.debezium.connector.mariadb.MariaDbConnector")
             .with("offset.storage",  "org.apache.kafka.connect.storage.FileOffsetBackingStore")
             .with("offset.storage.file.filename", "temp-folder/offset/offset.dat")
             .with("offset.flush.interval.ms", 60000)
             .with("schema.history.internal", "io.debezium.storage.file.history.FileSchemaHistory")
             .with("schema.history.internal.file.filename", "temp-folder/schema-history/schema.dat")
             .with("database.server.id", "85744")
             .with("database.hostname", "localhost")
             .with("database.port", 3306)
             .with("database.user", "root")
             .with("database.password", "root")
             .with("database.include.list", "trial")
             .with("table.include.list", "trial-2")
             .with("topic.prefix", "mariadb-connector")
             .build()

       

      What is the captured database version and mode of deployment?

      MariaDB@10.5 in my local PC running in a docker container

      What behavior do you see?

       

      Caused by: java.lang.NullPointerException: Cannot invoke "com.github.shyiko.mysql.binlog.GtidSet.toString()" because "this.gtidSet" is null	at com.github.shyiko.mysql.binlog.BinaryLogClient.requestBinaryLogStreamMaria(BinaryLogClient.java:827) ~[mysql-binlog-connector-java-0.40.2.jar:0.40.2]	at com.github.shyiko.mysql.binlog.BinaryLogClient.requestBinaryLogStream(BinaryLogClient.java:793) ~[mysql-binlog-connector-java-0.40.2.jar:0.40.2]	at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:619) ~[mysql-binlog-connector-java-0.40.2.jar:0.40.2]	at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:959) ~[mysql-binlog-connector-java-0.40.2.jar:0.40.2]

      binlog is ON mariadb side. Here is also gtid variables in db:

      gtid_binlog_pos    0-1-1
      gtid_binlog_state    0-1-1
      gtid_cleanup_batch_size    64
      gtid_current_pos    0-1-1
      gtid_domain_id    0
      gtid_ignore_duplicates    OFF
      gtid_pos_auto_engines    
      gtid_slave_pos    
      gtid_strict_mode    OFF
      wsrep_gtid_domain_id    0
      wsrep_gtid_mode    OFF

      For whatever reason, I'm always getting this error saying that gtidSet is not set. Then I examined code and noticed that gtidSet is only set in here:

      Since I have no filteredGtidSet, client gtidSet is being set as empty string. But in BinaryLogClient:

      gtidSet is not being set if gtidStr is empty string which is the case I did mentioned. That concludes with gtidSet being null, and this is the part where the code crashes with NPE:

      I cannot disable gtid as it is harcoded unlike in mysql. How should I proceed? Are you aware of this, maybe I'm missing something else

       

       

              Unassigned Unassigned
              emre.kumas Emre Kumaş (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: