Skip to content

canal 解析mariadb数据库binlog报错 #4308

@gongqianqian

Description

@gongqianqian
  • I have searched the issues of this repository and believe that this is not a duplicate.
  • I have checked the FAQ of this repository and believe that this is not a duplicate.

environment

  • canal version 1.1.3
  • mysql version
  • mariadb version 10.6.28

Issue Description

在mariadb环境下,修改表结构,在binlog里生成了alter table *** add column ***日志,canal parse到这个日志会报错,停止解析不了后面的日志了;在mysql 8.0环境下,这个解析这个日志是ok的

Steps to reproduce

1、启动canal server;
2、在mariadb环境下,修改表结构,在binlog里生成了alter table *** add column ***日志;
3、查看canal.log,有错误日志;导致canal msg发送不出去。

Expected behaviour

Actual behaviour

If there is an exception, please attach the exception trace:
java.io.IOException: Read Q_FLAGS2_CODE error: limit excceed: 67
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.unpackVariables(QueryLogEvent.java:717) ~[canal.parse.dbsync-1.1.3.jar:na]
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.(QueryLogEvent.java:495) ~[canal.parse.dbsync-1.1.3.jar:na]
at com.taobao.tddl.dbsync.binlog.LogDecoder.decode(LogDecoder.java:168) ~[canal.parse.dbsync-1.1.3.jar:na]
at com.taobao.tddl.dbsync.binlog.LogDecoder.decode(LogDecoder.java:111) ~[canal.parse.dbsync-1.1.3.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:264) [canal.parse-1.1.3.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:246) [canal.parse-1.1.3.jar:na]
at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168) [disruptor-3.4.2.jar:na]
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125) [disruptor-3.4.2.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]

Just put your stack trace here!

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions