Mysql死锁问题Deadlock found when trying to get lock;try restarting transaction

一、问题描述

今天测试在测试环境做压测,发现了一个报错,来找我帮忙看,如下图:

image-20240108105701985

二、问题排查

先去服务器上,看看死锁的日志,找到 mysql 的安装路径,使用如下命令登录 mysql

mysql -h 数据库IP地址 -P 数据库端口 -u 用户名 -p 库名

输入后,让你输入密码,输入密码之后,就登录成功了,然后再输入如下命令:

SHOW ENGINE INNODB STATUS \G

image-20240108111042370

然后从中找到 LATEST DETECTED DEADLOCK 下面的内容,如下:


LATEST DETECTED DEADLOCK

2024-01-05 21:19:23 0x7f8269fed700
*** (1) TRANSACTION:
TRANSACTION 258666849, ACTIVE 1 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 4 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 79628, OS thread handle 140195458455296, query id 9705658 10.100.0.95 root updating
update inc_t_store_return_merchandise_relation SET return_code=‘683901058240105_5’,

merchandise_code=‘60500085’,
apply_return_quantity=1,

returned_quantity=1,
return_unit_code=‘EA’,
returned_unit_code=‘EA’,
make_date=‘2024-01-01 08:00:00’,
batch_code=‘11’,

responsible_party=‘1’,
supplier_code=‘000159’,

price=600.00,

update_id=‘admin’,
update_time=‘2024-01-05 21:18:59.262’ where id=6701831480323817561 AND del_flag=‘N’

*** (1) HOLDS THE LOCK(S):
RECORD LOCKS space id 9159 page no 31 n bits 128 index PRIMARY of table ■■■■■.inc_t_store_return_order trx id 258666849 lock_mode X locks rec but not gap
Record lock, heap no 61 PHYSICAL RECORD: n_fields 27; compact format; info bits 0
0: len 8; hex 5d01b039393b4058; asc ] 99;@X;;
1: len 6; hex 00000f6af161; asc j a;;
2: len 7; hex 010000091f298d; asc ) ;;
3: len 17; hex 3638333930313035383234303130355f35; asc 683901058240105_5;;
4: len 3; hex 8fd025; asc %;;
5: len 1; hex 31; asc 1;;
6: len 7; hex 3130322d323036; asc 102-206;;
7: len 6; hex 303030313539; asc 000159;;
8: len 1; hex 31; asc 1;;
9: len 11; hex 315f363833393031303538; asc 1_683901058;;
10: SQL NULL;
11: SQL NULL;
12: len 1; hex 31; asc 1;;
13: len 4; hex e9998831; asc 1;;
14: len 2; hex 3320; asc 3 ;;
15: SQL NULL;
16: len 6; hex 313030313033; asc 100103;;
17: len 5; hex 99b24b549f; asc KT ;;
18: len 6; hex 313030313033; asc 100103;;
19: len 5; hex 99b24b549f; asc KT ;;
20: len 1; hex 4e; asc N;;
21: SQL NULL;
22: SQL NULL;
23: SQL NULL;
24: SQL NULL;
25: len 20; hex 36383339303130353832303234303130355f4532; asc 68390105820240105_E2;;
26: len 1; hex 32; asc 2;;

*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 9158 page no 27 n bits 120 index PRIMARY of table ■■■■■.inc_t_store_return_merchandise_relation trx id 258666849 lock_mode X locks rec but not gap waiting
Record lock, heap no 53 PHYSICAL RECORD: n_fields 31; compact format; info bits 0
0: len 8; hex 5d01b039393b4059; asc ] 99;@Y;;
1: len 6; hex 00000f6af14e; asc j N;;
2: len 7; hex 020000112921bb; asc )! ;;
3: len 17; hex 3638333930313035383234303130355f35; asc 683901058240105_5;;
4: len 11; hex 315f363833393031303538; asc 1_683901058;;
5: len 8; hex 3630353030303835; asc 60500085;;
6: len 6; hex 800000010000; asc ;;
7: len 6; hex 800000010000; asc ;;
8: len 2; hex 4541; asc EA;;
9: len 3; hex 8fd021; asc !;;
10: len 2; hex 3131; asc 11;;
11: len 4; hex 80000001; asc ;;
12: len 1; hex 33; asc 3;;
13: SQL NULL;
14: SQL NULL;
15: len 6; hex 313030313033; asc 100103;;
16: len 5; hex 99b24b549f; asc KT ;;
17: len 5; hex 61646d696e; asc admin;;
18: len 5; hex 99b24b54bb; asc KT ;;
19: len 1; hex 4e; asc N;;
20: len 6; hex 303030313539; asc 000159;;
21: len 1; hex 31; asc 1;;
22: len 6; hex 303030313539; asc 000159;;
23: SQL NULL;
24: len 9; hex 800000000000025800; asc X ;;
25: len 9; hex 800000000000025800; asc X ;;
26: SQL NULL;
27: SQL NULL;
28: len 2; hex 4541; asc EA;;
29: len 9; hex 800000000000025800; asc X ;;
30: len 9; hex 800000000000000000; asc ;;

*** (2) TRANSACTION:
TRANSACTION 258666830, ACTIVE 1 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 8 lock struct(s), heap size 1136, 3 row lock(s), undo log entries 4
MySQL thread id 79129, OS thread handle 140195152140032, query id 9705666 10.100.0.95 root updating
UPDATE inc_t_store_return_order SET return_code=‘683901058240105_5’, return_date=‘2024-01-05 00:00:00’, return_type=‘2’, dc_code=‘102-206’, supply_institution_code=‘000159’, supply_delivery_type=‘1’, store_code=‘1_683901058’, confirm_user=‘admin’, confirm_time=‘2024-01-05 21:18:59.168’, check_flag=‘1’, status=‘5’, purchase_code=‘68390105820240105_E2’, return_way=‘2’, create_id=‘100103’, create_time=‘2024-01-05 21:18:31’, update_id=‘100103’, update_time=‘2024-01-05 21:18:31’ WHERE id=6701831480323817560 AND del_flag=‘N’

*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 9158 page no 27 n bits 120 index PRIMARY of table ■■■■■.inc_t_store_return_merchandise_relation trx id 258666830 lock_mode X locks rec but not gap
Record lock, heap no 53 PHYSICAL RECORD: n_fields 31; compact format; info bits 0
0: len 8; hex 5d01b039393b4059; asc ] 99;@Y;;
1: len 6; hex 00000f6af14e; asc j N;;
2: len 7; hex 020000112921bb; asc )! ;;
3: len 17; hex 3638333930313035383234303130355f35; asc 683901058240105_5;;
4: len 11; hex 315f363833393031303538; asc 1_683901058;;
5: len 8; hex 3630353030303835; asc 60500085;;
6: len 6; hex 800000010000; asc ;;
7: len 6; hex 800000010000; asc ;;
8: len 2; hex 4541; asc EA;;
9: len 3; hex 8fd021; asc !;;
10: len 2; hex 3131; asc 11;;
11: len 4; hex 80000001; asc ;;
12: len 1; hex 33; asc 3;;
13: SQL NULL;
14: SQL NULL;
15: len 6; hex 313030313033; asc 100103;;
16: len 5; hex 99b24b549f; asc KT ;;
17: len 5; hex 61646d696e; asc admin;;
18: len 5; hex 99b24b54bb; asc KT ;;
19: len 1; hex 4e; asc N;;
20: len 6; hex 303030313539; asc 000159;;
21: len 1; hex 31; asc 1;;
22: len 6; hex 303030313539; asc 000159;;
23: SQL NULL;
24: len 9; hex 800000000000025800; asc X ;;
25: len 9; hex 800000000000025800; asc X ;;
26: SQL NULL;
27: SQL NULL;
28: len 2; hex 4541; asc EA;;
29: len 9; hex 800000000000025800; asc X ;;
30: len 9; hex 800000000000000000; asc ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 9159 page no 31 n bits 128 index PRIMARY of table ■■■■■.inc_t_store_return_order trx id 258666830 lock_mode X locks rec but not gap waiting
Record lock, heap no 61 PHYSICAL RECORD: n_fields 27; compact format; info bits 0
0: len 8; hex 5d01b039393b4058; asc ] 99;@X;;
1: len 6; hex 00000f6af161; asc j a;;
2: len 7; hex 010000091f298d; asc ) ;;
3: len 17; hex 3638333930313035383234303130355f35; asc 683901058240105_5;;
4: len 3; hex 8fd025; asc %;;
5: len 1; hex 31; asc 1;;
6: len 7; hex 3130322d323036; asc 102-206;;
7: len 6; hex 303030313539; asc 000159;;
8: len 1; hex 31; asc 1;;
9: len 11; hex 315f363833393031303538; asc 1_683901058;;
10: SQL NULL;
11: SQL NULL;
12: len 1; hex 31; asc 1;;
13: len 4; hex e9998831; asc 1;;
14: len 2; hex 3320; asc 3 ;;
15: SQL NULL;
16: len 6; hex 313030313033; asc 100103;;
17: len 5; hex 99b24b549f; asc KT ;;
18: len 6; hex 313030313033; asc 100103;;
19: len 5; hex 99b24b549f; asc KT ;;
20: len 1; hex 4e; asc N;;
21: SQL NULL;
22: SQL NULL;
23: SQL NULL;
24: SQL NULL;
25: len 20; hex 36383339303130353832303234303130355f4532; asc 68390105820240105_E2;;
26: len 1; hex 32; asc 2;;

*** WE ROLL BACK TRANSACTION (1)

可以看到事务1在根据主键ID更新 inc_t_store_return_merchandise_relation 表,而它持有 inc_t_store_return_order 表的排他锁(lock_mode X),而事务2在根据主键ID更新 inc_t_store_return_order 表,而它持有 inc_t_store_return_merchandise_relation 表的排他锁(lock_mode X),相当于两个事务都在等对方持有的排他锁,于是就死锁了。

去看了下代码,操作步骤如下

1、根据主键ID更新 inc_t_store_return_merchandise_relation

2、根据主键ID更新 inc_t_store_return_order

3、根据主键ID更新 inc_t_store_return_merchandise_relation

三、解决问题

增加分布式锁,让并发不存在

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计-----ssm知识库管理系统

项目介绍 文件集中上传:系统支持单文件上传以及批量上传,系统支持zip、rar格式的压缩包导入。亮点创新 多格式文件在线预览 用户可以对所有公共文件进行浏览,支持office,pdf格式以及常见图片格式,音频格式&#xff0c…

BOM,JS执行机制等

1.BOM 概述 1.1什么是 BOM BOM( Browser Object Model )即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window. BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。 BOM缺乏标…

基于ssm的孩童收养信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本孩童收养信息管理就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

二叉树的深度和高度问题(算法村第八关白银挑战)

二叉树的最大深度 104. 二叉树的最大深度 - 力扣(LeetCode) 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null…

揭开JavaScript数据类型的神秘面纱

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ ✨ 前言 JavaScript作为一门动态类型语言,其数据类型一直是开发者们关注的话题。本文将深入探讨Jav…

创建K8s节点的虚拟机

1、点击“创建新的虚拟机” 2、选择自定义,点击“下一步” 3、默认,点击“下一步” 4、默认,点击“下一步” 5、默认,点击“下一步” 6、设置虚拟机名称和位置,点击“下一步” 7、点击“下一步” 8、设置2048MB&#x…

x-cmd pkg | gitui - git 终端交互式命令行工具

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 gitui 由 Stephan D 于 2020 年使用 Rust 语言构建的 git 终端交互式命令行工具,旨在终端界面中便捷管理 git 存储库。 首次用户 使用 x gitui 即可自动下载并使用 在终端运行 eval "$(curl https:/…

C语言动态内存管理

我们目前知道的开辟内存空间的方法有: 1.创建变量 2.创建数组; 但是这2种方法开辟的空间大小都是固定的,如果是数组的话确认了大小之后是无法改变的; int a10;//在栈区空间上开辟4个字节的空间;int arr[10];//在栈…

【每日一题】回旋镖的数量

文章目录 Tag题目来源解题思路方法一:组合数学 写在最后 Tag 【组合数学】【数组】【2024-01-08】 题目来源 447. 回旋镖的数量 解题思路 方法一:组合数学 思路 以数组 points 中的每一个为回旋镖的中心 i,在数组 points 中找距离中心 i…

leetcode:滑动窗口

目录 1.定长滑动窗口 1.1 几乎唯一子数组的最大和(使用map来计数) 1.2 长度为k子数组中的最大和 2.不定长滑动窗口 2.1 最多k个重复元素的最长子数组 2.2 绝对差不超过限制的最长连续子数组(multiset) 2.3 将x减到0的最小操作数(正难则反 逆向思维) 2.4 统计…

Windows Server 2003 (NT 5.2.3790.0) 构建指南

Windows Server 2003 (NT 5.2.3790.0) 构建指南 版本 10b,最后更新于 2021/10/21 原文 https://rentry.co/build-win2k3 指令在 XP SP3 x86、Win7 SP1 x86/x64 和 Win10 x64 下测试,结果在其他操作系统下可能会有所不同。 该指南由一位无名的匿名人士维…

每日算法打卡:子矩阵的和 day 8

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码 原题链接 796. 子矩阵的和 题目难度:简单 题目描述 输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数…

6.综合案例

1. 需求描述 1.1 显示所有员工信息 URI:emps 请求方式:GET 显示效果 1.2 添加操作- 去往添加页面 显示添加页面: URI:emp 请求方式:GET 显示效果 1.3 添加操作- 添加员工 添加员工信息: URI:emp 请求方式:POST 显示效果:完成添加, 重定向到 list 页面。 1.4…

.NET国产化改造探索(四)、银河麒麟安装Nginx

随着时代的发展以及近年来信创工作和…废话就不多说了,这个系列就是为.NET遇到国产化需求的一个闭坑系列。接下来,看操作。 上一篇介绍了如何在银河麒麟操作系统上安装.NET运行环境,这篇文章详细介绍下在银河麒麟操作系统上安装Nginx。 安装…

Unity C# 枚举多选

枚举多选 &#x1f96a;例子&#x1f354;判断 &#x1f96a;例子 [System.Flags]public enum TestEnum{ None 0,Rooms 1 << 1,Walls1<<2,Objects1<<3,Slabs 1 << 4,All Rooms|Walls|Objects|Slabs}&#x1f354;判断 TestEnum test TestEnum.R…

全网最全Midjourney以图生图的详细教程 内有6种案例 小白必收藏!!!!

手把手教你入门绘图超强的AI绘画程序&#xff0c;用户只需要输入一段图片的文字描述&#xff0c;即可生成精美的绘画。给大家带来了全新保姆级教程资料包&#xff08;文末可获取&#xff09; 基础介绍 本篇文章&#xff0c;将介绍如何利用Midjourney完成图生图的方式&#xf…

Xfs文件系统磁盘布局

目录 一&#xff0c;CentOS下Xfs文件系统的安装 二&#xff0c;准备工作 三&#xff0c;AG结构 四&#xff0c;AG超级块 五&#xff0c;AG空闲磁盘空间管理 六&#xff0c;ABTB的Btree 七&#xff0c;ABTB/ABTC的节点块管理 八&#xff0c;inode节点管理 九&#xff0…

LINUX内核故障问题之SKB DROP

关键词 Red Hat Enterprise Linux (RHEL) 7.6SKB linearization failedvm.min_free_kbytes 一、问题现象 一台业务主机dmesg 日志中频繁有以下报错&#xff1a; [qede_ start_ xmit :1289(p1p2)]SKB linearization failed - silently dropping this SKB。 二、问题分析 1…

爆肝整理,性能测试-交易系统升级压测思路,一篇不走弯路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 交易系统性能是体…

【性能测试】JMeter分布式测试及其详细步骤

性能测试概要 性能测试是软件测试中的一种&#xff0c;它可以衡量系统的稳定性、扩展性、可靠性、速度和资源使用。它可以发现性能瓶颈&#xff0c;确保能满足业务需求。很多系统都需要做性能测试&#xff0c;如Web应用、数据库和操作系统等。 性能测试种类非常多&#xff0c…