Description:
Hello, I found a bug in 8.0.35-cluster version of MYSQL cluster. This is by far the most variable bug I've encountered, he's shown at least 4 different states when I've tried to reproduce it.
This bug needs at least 2 nodes to repeat.
Node 1 Poc:
```
update mytest90.test1 set
column1 = mytest90.test1.column4,
column2 = mytest90.test1.column2,
column5 = case when true then mytest90.test1.column5 else mytest90.test1.column5 end
,
column6 = mytest90.test1.column6;
```
Node 2 Poc:
```
ALTER TABLE mytest90.test1 DROP COLUMN column3;
```
The requirement is that node1 then executes the update statement while node2's alter statement is executing. He showed the following four states when I tried to reproduce it:
result 1:
```
The update statement reports an error:
Got error 4009 'Cluster Failure' from NDBCLUSTER
node 1:1713501452.043485 , 1713501452.044517
node 2:1713501451.821443 , 1713501452.186541
```
result 2:
```
The update statement reports an error:
Table 'mytest90.test1' doesn't exist
node 1:start time: 1714823323.300178 end time:1714823323.301556
node 2:start time: 1714823323.000108 end time:1714823323.509685
```
result 3:
```
The alter statement reports an error:
Detected change to data in source table during copying ALTER TABLE. Alter aborted to avoid inconsistency.
node 1:start time: 1714823174.100162 end time:1714823174.125460
node 2:start time: 1714823174.000091 end time:1714823174.215103
```
result 4:
```
Both SQL executed successfully.
node 1:start time: 1714823648.300132 end time:1714823648.595222
node 2:start time: 1714823648.000099 end time:1714823648.528708
```
How to repeat:
Importing the database file I give later, and then executing Poc. Note that this bug is very demanding on the execution time of the statement.
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
'''
Suggested fix:
There should be a conflict between the update statement and the alter statement.