释放全局锁时有死锁发生,偶现
二.描述发生了什么2023-06-03T16:25:39.576102Z 0 [Note] [MY-012468] [InnoDB] Transactions deadlock detected, dumping detailed information. (lock0lock.cc:6482)
2023-06-03T16:25:39.576135Z 0 [Note] [MY-012469] [InnoDB] *** (1) TRANSACTION: (lock0lock.cc:6496)
TRANSACTION 1421161786, ACTIVE 0 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 3
MySQL thread id 11664211, OS thread handle 70369984151280, query id 4436721816 10.103.104.197 xxx_db update
insert into lock_table(xid, transaction_id, branch_id, resource_id, table_name, pk, row_key, gmt_create, gmt_modified,status) values ('10.103.104.197:8091:2594469194175440306', 2594469194175440306, 2594469194175440312, 'jdbc:mysql://xxx:3306/xxx_db', 'task', '3620248418881662466', 'jdbc:mysql://xxx:3306/xxx_db^^^task^^^3620248418881662466', now(), now(), 0),('10.103.104.197:8091:2594469194175440306', 2594469194175440306, 2594469194175440312, 'jdbc:mysql://xxx:3306/xxx_db', 'table_c', '3620248418881662468', 'jdbc:mysql://xxx:3306/xxx_db^
2023-06-03T16:25:39.576182Z 0 [Note] [MY-012469] [InnoDB] *** (1) HOLDS THE LOCK(S): (lock0lock.cc:6496)
RECORD LOCKS space id 1178 page no 4 n bits 96 index PRIMARY of table `production_seata_server`.`lock_table` trx id 1421161786 lock_mode X locks rec but not gap
Record lock, heap no 29 PHYSICAL RECORD: n_fields 12; compact format; info bits 0
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b5353a; asc T 5:;;
2: len 7; hex 810000011901a9; asc ;;
3: len 30; hex 31302e3130332e3130342e3139373a383039313a32353934343639313934; asc 10.103.104.197:8091:2594469194; (total 39 bytes);
4: len 8; hex a40167fc6b8565b2; asc g k e ;;
5: len 8; hex a40167fc6b8565b8; asc g k e ;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 72656c696162696c6974795f73656e645f7374617465; asc table_c;;
8: len 19; hex 33363230323438343138383831363632343638; asc 3620248418881662468;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480667; asc H g;;
11: len 5; hex 99b0480667; asc H g;;
2023-06-03T16:25:39.576707Z 0 [Note] [MY-012469] [InnoDB] *** (1) WAITING FOR THIS LOCK TO BE GRANTED: (lock0lock.cc:6496)
RECORD LOCKS space id 1178 page no 4 n bits 96 index PRIMARY of table `production_seata_server`.`lock_table` trx id 1421161786 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 24 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 163 bytes);
1: len 6; hex 000054b5353b; asc T 5;;;
2: len 7; hex 02000005c50f8a; asc ;;
3: len 30; hex 31302e3130332e3130342e3139373a383039313a32353934343639313934; asc 10.103.104.197:8091:2594469194; (total 39 bytes);
4: len 8; hex a40167fc6b8565af; asc g k e ;;
5: len 8; hex a40167fc6b8565b6; asc g k e ;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 24; hex 72656c696162696c6974795f73656e645f6d657373616765; asc table_b;;
8: len 19; hex 33363230323438343139373438303835383130; asc 3620248419748085810;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480667; asc H g;;
11: len 5; hex 99b0480667; asc H g;;
2023-06-03T16:25:39.577229Z 0 [Note] [MY-012469] [InnoDB] *** (2) TRANSACTION: (lock0lock.cc:6496)
TRANSACTION 1421161787, ACTIVE 0 sec fetching rows
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1136, 11 row lock(s), undo log entries 3
MySQL thread id 11660753, OS thread handle 70369968439024, query id 4436721817 10.103.104.197 xxx_db updating
delete from lock_table where xid = '10.103.104.197:8091:2594469194175440303'
2023-06-03T16:25:39.577260Z 0 [Note] [MY-012469] [InnoDB] *** (2) HOLDS THE LOCK(S): (lock0lock.cc:6496)
RECORD LOCKS space id 1178 page no 4 n bits 96 index PRIMARY of table `production_seata_server`.`lock_table` trx id 1421161787 lock_mode X
Record lock, heap no 4 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b5345c; asc T 4\;;
2: len 7; hex 01000017722c6e; asc r,n;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b67; asc g Z g;;
5: len 8; hex c6a167fc5ad71b6b; asc g Z k;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 666163655f737761705f7461736b5f73657474696e67; asc table_a;;
8: len 19; hex 33363230323438343138323539323032303234; asc 3620248418259202024;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 5 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 163 bytes);
1: len 6; hex 000054b5345c; asc T 4\;;
2: len 7; hex 01000017722f98; asc r/ ;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b67; asc g Z g;;
5: len 8; hex c6a167fc5ad71b6b; asc g Z k;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 24; hex 72656c696162696c6974795f73656e645f6d657373616765; asc table_b;;
8: len 19; hex 33363230323438343138323539323032303236; asc 3620248418259202026;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 6 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b5345c; asc T 4\;;
2: len 7; hex 010000177232c2; asc r2 ;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b67; asc g Z g;;
5: len 8; hex c6a167fc5ad71b6b; asc g Z k;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 72656c696162696c6974795f73656e645f7374617465; asc table_c;;
8: len 19; hex 33363230323438343138323539323032303236; asc 3620248418259202026;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 7 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 163 bytes);
1: len 6; hex 000054b5345c; asc T 4\;;
2: len 7; hex 01000017722e01; asc r. ;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b67; asc g Z g;;
5: len 8; hex c6a167fc5ad71b6b; asc g Z k;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 24; hex 72656c696162696c6974795f73656e645f6d657373616765; asc table_b;;
8: len 19; hex 33363230323438343138323539323032303235; asc 3620248418259202025;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 8 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b5345c; asc T 4\;;
2: len 7; hex 0100001772312f; asc r1/;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b67; asc g Z g;;
5: len 8; hex c6a167fc5ad71b6b; asc g Z k;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 72656c696162696c6974795f73656e645f7374617465; asc table_c;;
8: len 19; hex 33363230323438343138323539323032303235; asc 3620248418259202025;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 15 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b53476; asc T 4v;;
2: len 7; hex 0100000e0122cd; asc " ;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b6d; asc g Z m;;
5: len 8; hex c6a167fc5ad71b71; asc g Z q;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 72656c696162696c6974795f73656e645f7374617465; asc table_c;;
8: len 19; hex 33363230323438343138323539323032303238; asc 3620248418259202028;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 16 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 163 bytes);
1: len 6; hex 000054b53476; asc T 4v;;
2: len 7; hex 0100000e012136; asc !6;;
3: len 30; hex 31302e3130332e302e36343a383039313a35303839343633333837343538; asc 10.103.0.64:8091:5089463387458; (total 36 bytes);
4: len 8; hex c6a167fc5ad71b6d; asc g Z m;;
5: len 8; hex c6a167fc5ad71b71; asc g Z q;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 24; hex 72656c696162696c6974795f73656e645f6d657373616765; asc table_b;;
8: len 19; hex 33363230323438343138323539323032303238; asc 3620248418259202028;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480666; asc H f;;
11: len 5; hex 99b0480666; asc H f;;
Record lock, heap no 24 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 163 bytes);
1: len 6; hex 000054b5353b; asc T 5;;;
2: len 7; hex 02000005c50f8a; asc ;;
3: len 30; hex 31302e3130332e3130342e3139373a383039313a32353934343639313934; asc 10.103.104.197:8091:2594469194; (total 39 bytes);
4: len 8; hex a40167fc6b8565af; asc g k e ;;
5: len 8; hex a40167fc6b8565b6; asc g k e ;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 24; hex 72656c696162696c6974795f73656e645f6d657373616765; asc table_b;;
8: len 19; hex 33363230323438343139373438303835383130; asc 3620248419748085810;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480667; asc H g;;
11: len 5; hex 99b0480667; asc H g;;
Record lock, heap no 26 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b5353b; asc T 5;;;
2: len 7; hex 02000005c50df4; asc ;;
3: len 30; hex 31302e3130332e3130342e3139373a383039313a32353934343639313934; asc 10.103.104.197:8091:2594469194; (total 39 bytes);
4: len 8; hex a40167fc6b8565af; asc g k e ;;
5: len 8; hex a40167fc6b8565b6; asc g k e ;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 666163655f737761705f7461736b5f73657474696e67; asc table_a;;
8: len 19; hex 33363230323438343139373438303835383039; asc 3620248419748085809;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480667; asc H g;;
11: len 5; hex 99b0480667; asc H g;;
Record lock, heap no 27 PHYSICAL RECORD: n_fields 12; compact format; info bits 32
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 163 bytes);
1: len 6; hex 000054b5353b; asc T 5;;;
2: len 7; hex 02000005c51124; asc $;;
3: len 30; hex 31302e3130332e3130342e3139373a383039313a32353934343639313934; asc 10.103.104.197:8091:2594469194; (total 39 bytes);
4: len 8; hex a40167fc6b8565af; asc g k e ;;
5: len 8; hex a40167fc6b8565b6; asc g k e ;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 24; hex 72656c696162696c6974795f73656e645f6d657373616765; asc table_b;;
8: len 19; hex 33363230323438343139373438303835383131; asc 3620248419748085811;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480667; asc H g;;
11: len 5; hex 99b0480667; asc H g;;
2023-06-03T16:25:39.582068Z 0 [Note] [MY-012469] [InnoDB] *** (2) WAITING FOR THIS LOCK TO BE GRANTED: (lock0lock.cc:6496)
RECORD LOCKS space id 1178 page no 4 n bits 96 index PRIMARY of table `production_seata_server`.`lock_table` trx id 1421161787 lock_mode X waiting
Record lock, heap no 29 PHYSICAL RECORD: n_fields 12; compact format; info bits 0
0: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 161 bytes);
1: len 6; hex 000054b5353a; asc T 5:;;
2: len 7; hex 810000011901a9; asc ;;
3: len 30; hex 31302e3130332e3130342e3139373a383039313a32353934343639313934; asc 10.103.104.197:8091:2594469194; (total 39 bytes);
4: len 8; hex a40167fc6b8565b2; asc g k e ;;
5: len 8; hex a40167fc6b8565b8; asc g k e ;;
6: len 30; hex 6a6462633a6d7973716c3a2f2f61692d6261636b656e642d6175726f7261; asc jdbc:mysql://xxx; (total 114 bytes);
7: len 22; hex 72656c696162696c6974795f73656e645f7374617465; asc table_c;;
8: len 19; hex 33363230323438343138383831363632343638; asc 3620248418881662468;;
9: len 1; hex 80; asc ;;
10: len 5; hex 99b0480667; asc H g;;
11: len 5; hex 99b0480667; asc H g;;
2023-06-03T16:25:39.582564Z 0 [Note] [MY-012469] [InnoDB] *** WE ROLL BACK TRANSACTION (2) (lock0lock.cc:6496)
三.描述您期望发生的情况
框架不应该出现死锁
四.如何重现它(尽可能最少且精确)暂未验证
Ⅴ.还有什么我们需要知道的吗?server端1.5.2遇到过,升到1.6.1问题尚在表结构中
# 生产表结构
# Schema: production_seata_server Table: lock_table
-- auto-generated definition
create table lock_table
(
row_key varchar(512) not null
primary key,
xid varchar(128) null,
transaction_id bigint null,
branch_id bigint not null,
resource_id varchar(256) null,
table_name varchar(32) null,
pk varchar(36) null,
status tinyint default 0 not null comment '0:locked ,1:rollbacking',
gmt_create datetime null,
gmt_modified datetime null
);
create index idx_branch_id
on lock_table (branch_id);
create index idx_status
on lock_table (status);
create index idx_xid
on lock_table (xid);
Ⅵ.环境:
- JDK版本(例如
java -version
):jdk8 - Seata客户端/服务器版本:1.5.2/1.6.1
- 数据库版本:mysql8
- 操作系统(例如
uname -a
):linux