Description:
Hello, I found a hang bug in 8.0.35-cluster version of MYSQL cluster.
The detail is as follow.
OS version and name:
Ubuntu 22.04.3 LTS (Jammy Jellyfish)
Linux eb1f47b08982 6.5.11-8-pve #1 SMP PREEMPT_DYNAMIC PMX 6.5.11-8 (2024-01-30T12:27Z) x86_64 x86_64 x86_64 GNU/Linux
PoC:
'''
select
ref_0.column1 as c0,
ref_0.column5 as c1,
ref_0.column2 as c2,
ref_0.column5 as c3,
85 as c4,
ref_0.column5 as c5,
ref_0.column6 as c6
from
mytest90.test8 as ref_0
where (EXISTS (
select
ref_0.column2 as c0
from
mytest90.test7 as ref_1
left join mytest90.test6 as ref_2
on (true)
where EXISTS (
select
ref_3.column7 as c0,
ref_2.column1 as c1,
ref_0.column6 as c2
from
mytest90.test7 as ref_3
where EXISTS (
select
(select Ssl_verify_server_cert from mysql.slave_master_info limit 1 offset 3)
as c0,
subq_1.c0 as c1
from
mytest90.test5 as ref_4,
lateral (select
ref_3.column5 as c0,
ref_1.column2 as c1,
ref_2.column1 as c2
from
mytest90.test6 as ref_5
where true
limit 112) as subq_0,
lateral (select
ref_1.column4 as c0
from
mytest90.test2 as ref_6
where (true)
or ((false)
and (((true) or (ref_6.column2 is NULL))
and (ref_2.column1 is NULL))) limit 81) as subq_1
where (51 is not NULL) or (false)
limit 125) limit 114)))
and ((ref_0.column2 is not NULL)
or (((((95 is NULL)
or (false)) and (ref_0.column6 is NULL))
or (ref_0.column5 is NULL)) or ((((false)
or (false)) or (ref_0.column2 is NULL))
and (true))))
limit 122;
'''
Architecture Information:
'''
[NDBD DEFAULT]
NoOfReplicas =2
DataMemory = 512M
IndexMemory = 64M
[NDB_MGMD]
NodeId=1
hostname =192.172.10.8
datadir =/var/lib/mysql-cluster
[NDBD]
NodeId =2
hostname =192.172.10.9
datadir =/usr/local/mysql-cluster/data
NodeGroup=0
[NDBD]
NodeId =3
hostname =192.172.10.10
datadir =/usr/local/mysql-cluster/data
NodeGroup=1
[NDBD]
NodeId =4
hostname =192.172.10.11
datadir =/usr/local/mysql-cluster/data
NodeGroup=0
[NDBD]
NodeId =5
hostname =192.172.10.12
datadir =/usr/local/mysql-cluster/data
NodeGroup=1
[mysqld]
NodeId =6
hostname =192.172.10.9
[mysqld]
NodeId =7
hostname =192.172.10.10
[mysqld]
NodeId =8
hostname =192.172.10.11
[mysqld]
NodeId =9
hostname =192.172.10.12
'''
Attempted and successfully reproduced!
How to repeat:
Simply execute that PoC to repeat it.
Suggested fix:
seems like a dead loop