Skip to content

canal-1.1.6启动后instance一直刷日志Skipping unrecognized binlog event Unknown type:41 #4225

@Eat-Sleep-HitBean

Description

@Eat-Sleep-HitBean

canal版本:1.1.6

mysql版本:8.0.29

日志信息

2022-06-13 03:40:54.806 [MultiStageCoprocessor-other-example-0] WARN  com.taobao.tddl.dbsync.binlog.LogDecoder - Skipping unrecognized binlog event Unknown type:41 from: binlog.000005:114150465
2022-06-13 03:41:39.967 [MultiStageCoprocessor-other-example-0] WARN  com.taobao.tddl.dbsync.binlog.LogDecoder - Skipping unrecognized binlog event Unknown type:41 from: binlog.000005:114155694

查询MySQL事件信息

show binlog events in 'binlog.000005' from 114155694 limit 5;
Log_name Pos Event_type Server_id End_log_pos Info
binlog.000005 114155694 Anonymous_Gtid 1 114155773 SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
binlog.000005 114155773 Query 1 114155856 BEGIN
binlog.000005 114155856 Table_map 1 114155931 table_id: 107 (tag.qrtz_scheduler_state)
binlog.000005 114155931 Update_rows 1 114156115 table_id: 107 flags: STMT_END_F
binlog.000005 114156115 Xid 1 114156146 COMMIT /* xid=2835988 */

排查过程

查看LogEvent类中的代码,存在对事件类型41的定义

    /* mysql 8.0.20 */
    public static final int    TRANSACTION_PAYLOAD_EVENT                = 40;

    public static final int    MYSQL_ENUM_END_EVENT                     = 41;

查询MySQL手册:https://dev.mysql.com/doc/internals/en/event-classes-and-types.html
手册中有类似名称的事件类型(ENUM_END_EVENT),但是没有解释具体含义

  PREVIOUS_GTIDS_LOG_EVENT= 35, 
  ENUM_END_EVENT 

疑问

项目本身使用了quartz框架,猜测是quartz框架自动查询数据库表的时候,MySQL生成了一个41类型的事件,事件内容为分配下一个全局事务ID为“匿名的”,本身不清楚MySQL这块儿的处理逻辑,这个日志输出可以忽略吗?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions