MySQL:5.6同步到5.7 GTID报错

news2024/11/22 22:22:12

问题描述和处理

同步到的版本为5.7.35,按理说在5.7种还是一个比较新的版本了,报错大概如下:

2023-05-14T05:09:47.427031Z 12 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 163; events assigned = 67585; worker queues filled over overrun level = 0; waited due
 a Worker queue full = 0; waited due the total size = 0; waited at clock conflicts = 0 waited (count) when Workers occupied = 0 waited when Workers occupied = 0
2023-05-14T05:09:48.526341Z 12 [ERROR] Transaction is tagged with inconsistent logical timestamps: sequence_number (7870797233) <= last_committed (2957740090370948108)
2023-05-14T05:09:48.526416Z 12 [ERROR] Slave SQL for channel '': ... The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state. A restart should rest
ore consistency automatically, although using non-transactional storage for data or info tables or DDL queries could lead to problems. In such cases you have to examine your data (see docum
entation for details). Error_code: 1756

从报错来看肯定属于逻辑时钟并发的问题,因为在5.6中gtid event没有last commit和seq number,因此可能并发的时候遇到了问题,因此简单的关闭了MTS并发回放就可以了继续了。

分析原因

实际上在代码中对于GTID不包含的last commit和seq number的情况,在初始化gtid event的时候应该将其初始化为0(SEQ_UNINIT= 0;
),并且并发的时候也会有相关判定如下:

那么这个条件不可能成立,因为last_committed == SEQ_UNINIT,也就不会报错,但是实际上这里报错了。从报错的seq number和last commit值来看,应该是内存越界访问的结果,否则不会有这种很大的seq number和last commit(sequence_number (7870797233) 、 last_committed (2957740090370948108))。

那么接下来就是看看为什么会出现这种情况,也就是gtid event的初始化遇到了什么问题。实际上问题就出在binary_log::Gtid_event::Gtid_event这个构造函数中,如下

这里ptr_buffer + LOGICAL_TIMESTAMP_TYPECODE_LENGTH +
LOGICAL_TIMESTAMP_LENGTH <= buffer + event_len的含义是,如果本次获取的gtid event的长度小于5.7格式的gtid event的长度就不要执行last commit和seq number的赋值,因为5.7的gtid event 包含了16字节的last commit和seq number,还包含了1字节的typecode,总共比5.6的gtid event 大17字节。
但是这里的问题在于buffer + event_len中buffer的位置已经是去掉event header的长度,也就是计算的是event_len的长度+event header的长度,如下,

而event header为19个字节,因此判定的实际上就是是17字节<=19字节,这个条件是一定会满足的,因此这里出现了buffer的越界访问,当越界访问的值也满足第二个条件的时候,就会进行last commit和seq number的赋值,但是为越界访问,因此值不确定,比如看到的如下,

当不确定的值遇到last commit比seq number还大的情况就会报错了。那么这里实际上稍微改一下

就可以了,LOG_EVENT_HEADER_LEN则为19字节。修改编译后5.6到5.7的同步可以正常运行,再次查看last commit和seq number就是0了。


这也是正常的因为5.6就没有last commit和seq number。并且还需要测试5.7到5.7的主从同步,是否gtid event能够拿到正确的值,因为如果这里过滤异常了,则5.7到5.7的同步seq number和last commit 也可能初始化为0,也就是测试修改是否正确,查看seq number和last commit如下,

能够初始化为正常的值。

提问一个问题

C语言内存越界不一定会触发SIGSEGV信号的原因是因为,SIGSEGV是由操作系统抛出的信号,当程序执行访问了无效的内存地址时,操作系统会检测到这种异常情况,并向进程发送SIGSEGV信号。

然而,在C语言中,对于数组和指针的访问并未受到强制的边界检查,如果程序发生内存越界,也许不会直接导致程序崩溃,而是可能引起一些意想不到的结果,比如修改了其他变量的值、出现奇怪的计算结果等。这种情况被称为未定义行为。

因此,当程序存在内存越界的问题时,不一定会立即引发SIGSEGV信号,而是要视具体情况而定,有时候会在操作系统的内存保护机制下触发SIGSEGV信号,有时候则不会。为了避免内存越界带来的未定义行为,应该在编写代码时尽量避免这种情况的出现,或者通过调试工具等手段进行检测和修复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GD32 系列FLASH锁死解决.

1.背景描述 使用keil开发工具JLINK调试过程中偶尔出现找不到目标版&#xff0c;或存在目标版但keil调试烧录出现如下界面&#xff1a; 2.问题查询步骤 2.1检查jlink连接线是否异常&#xff1b; 2.2确定boot0和boot1设置是否正确&#xff1b; 2.3确定是否是flash读写保护 2.3.1…

K8s进阶2——二进制搭建K8s高可用集群

文章目录 一、单master资源清单二、系统初始化三、部署etcd集群3.1 生成etcd证书3.2 部署流程3.2.1 准备二进制安装文件3.2.2 创建工作目录3.2.3 创建etcd配置文件3.2.4 设置成systemd服务3.2.5 添加etcd-2和etcd-3节点3.2.6 所有节点启动etcd并设置开机启动 四、安装容器引擎&…

webpack基础

1. 当面试官问Webpack的时候他想知道什么 前言 在前端工程化日趋复杂的今天&#xff0c;模块打包工具在我们的开发中起到了越来越重要的作用&#xff0c;其中webpack就是最热门的打包工具之一。 说到webpack&#xff0c;可能很多小伙伴会觉得既熟悉又陌生&#xff0c;熟悉是…

java汽车4S店管理系统myeclipse定制开发oracle数据库网页模式java编程jdbc

一、源码特点 java汽车4S店管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助 oracle数据库&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 java汽车4S店管理系统myeclipse定制开发orac 二、功能介绍 此次系统…

漏扫工具-xray 1.9.10(文末附下载)

一、工具介绍 一款功能强大的安全评估工具 二、使用说明 1.使用基础爬虫爬取并对爬虫爬取的链接进行漏洞扫描 xray webscan --basic-crawler http://example.com --html-output vuln.html 2.使用 HTTP 代理进行被动扫描 xray webscan --listen 127.0.0.1:7777 --html-outp…

Fiddler如何抓取微信小程序的包

1.简介 有些小伙伴或者是童鞋们说小程序抓不到包&#xff0c;该怎么办了&#xff1f;&#xff1f;&#xff1f;其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了&#xff0c;应该可以轻松就抓到包了。那么安卓手机小程序就比较困难&#xff0c;不是那么友好了。所以…

FMC子卡设计资料原理图450-基于ADRV9009的双收双发射频FMC子卡 数字信号处理卡 射频收发卡 基站应用 便携测试设备

FMCJ450-基于ADRV9009的双收双发射频FMC子卡 一、板卡概述 ADRV9009是一款高集成度射频(RF)、捷变收发器&#xff0c;提供双通道发射器和接收器、集成式频率合成器以及数字信号处理功能。这款IC具备多样化的高性能和低功耗组合&#xff0c;FMC子卡为2路输入&#xff0c;…

MySQL高级_第08章_索引的创建与设计原则

MySQL高级_第08章_索引的创建与设计原则 1. 索引的声明与使用 1.1 索引的分类 MySQL 的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从 功能逻辑 上说&#xff0c;索引主要有 4 种&#xff0c;分别是普通索引、唯一索引、主键索引、全文索…

新手如何重装Win10系统 新手重装Win10系统的方法

电脑系统是电脑运行的核心&#xff0c;如果出现问题就需要重装系统。对于新手来说&#xff0c;重装电脑系统可能会显得比较困难和陌生。本文将介绍新手如何重装电脑系统Win10&#xff0c;让电脑新手也能轻松搞定。 新手重装Win10系统的方法 一、准备工作 1、下载极客狗电脑重…

canvas、svg的基本使用【数据可视化】

什么是数据可视化&#xff1f; 基本概念&#xff1a;是关于数据视觉表现形式的科学技术研究 这个概念向我们传达了两个信息&#xff1a; &#xff08;1&#xff09;数据可视化是一门学科 &#xff08;2&#xff09;数据可视化与数据和视觉有关 数据可视化简单理解&#xff0c;…

veth网卡的多队列及RPS

背景&#xff1a; 3.10内核下容器使用的veth网卡&#xff0c;默认开启的是一个队列&#xff0c;导致在某些单线程多TCP链接的应用场景下&#xff0c;出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS&#xff0c;让其在多流场景下可以去分散到其它CPU上…

DSSM - 双塔经典模型(微软)

《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》论文由微软发表于 CIKM-2013。DSSM被广泛用于工业界的 召回/粗排 阶段。 模型结构 模型结构一目了然&#xff0c;非常简单&#xff0c;双塔结构&#xff1a;user侧一个塔&#xff0c;ite…

ChatGPT的兴起的时代,国内chatgpt产品大盘点

在人工智能技术的不断发展和应用下&#xff0c;自然语言处理技术成为了研究的热点之一。而其中最受关注的就是“聊天机器人”技术&#xff0c;而GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型则是目前最流行的聊天机器人生成模型之一。 随着 ChatGPT 技…

蓝牙RSSI/BLE AOA/UWB室内定位技术哪个好?

蓝牙AOA定位技术的出现&#xff0c;弥补了蓝牙RSSI值定位精度不高的缺陷。从理论上来说&#xff0c;可以对目前的蓝牙RSSI定位方案进行一定程度的替代。当然了&#xff0c;在高精度定位应用领域中&#xff0c;UWB定位已经在批量的成熟商用了。蓝牙AOA也具有很高的定位精度&…

单位网站被黑被下达整改进行行政处罚

最近这几年&#xff0c;由于信息系统安全等级保护法的普及&#xff0c;越来越多公司收到当地公安网监部门打来的电话&#xff0c;说你们公司网站有漏洞&#xff0c;需要限期在2-3内进行漏洞整改和加固&#xff0c;遇到这种情况&#xff0c;不要着急&#xff0c;下面来分享一下该…

JavaEE(系列8) -- 多线程案例(单例模式)

目录 1. 设计模式 2. 单例模式 -- 饿汉模式 3. 单例模式 -- 懒汉模式 4. 单例模式(懒汉模式-多线程) 1. 设计模式 什么是设计模式? 设计模式好比象棋中的 "棋谱". 红方当头炮, 黑方马来跳. 针对红方的一些走法, 黑方应招的时候有一些固定的套路. 按照套路…

【融合感知】激光雷达和相机融合感知-BEVFusion

BEVFusion有两篇文章&#xff0c;这里在一起分析下不同&#xff0c;分别是&#xff1a; 【1】BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework. 【2】BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation 先说结论&…

品牌联名又出圈了!小红书数据揭示,引爆流量三部曲

这几天&#xff0c;你们的朋友圈是不是被喜茶FENDI黄刷屏啦&#xff1f;近日&#xff0c;茶饮品牌牵手意大利奢侈品牌联名上新&#xff0c;一跃成为各平台热门。 品牌新联名&#xff0c;这次又出圈了&#xff01; 喜茶可谓是联名界的老玩家了&#xff0c;曾与藤原浩、《梦华录》…

HTML5新增标签

前言 HTML5的新特性主要是针对以前的不足&#xff0c;增加了一些新标签&#xff0c;新表单和新表单属性 但是呢&#xff01;这些标签大多都存在兼容性的问题&#xff0c;基本是IE9以上的版本才支持 之前我们做布局&#xff0c;都用的是div&#xff0c;但是没有语义性 HTM…

Java开发的多商户商城系统源码小程序app

Java开发的多商户商城系统源码小程序app主要是为商家提供一个线上销售平台&#xff0c;实现商品展示、订单管理、支付等功能&#xff0c;并且支持多商户注册&#xff0c;以下是它的功能介绍&#xff1a; 一、 用户端&#xff1a;1. 用户注册与登录&#xff1a;用户可以使用手机…