[MDEV-10407] Transactions not in Galera's receive queue when FLUSH TABLES WITH READ LOCK executed Created: 2016-07-20 Updated: 2018-07-16 Resolved: 2018-07-16 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Galera, wsrep |
| Affects Version/s: | 10.0.24-galera |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Critical |
| Reporter: | Geoff Montee (Inactive) | Assignee: | Jan Lindström (Inactive) |
| Resolution: | Not a Bug | Votes: | 0 |
| Labels: | galera, wsrep | ||
| Description |
|
Let's say that we have a 2 node cluster. On one of the nodes, let's set up a table like the following:
Then on node 2, execute the following:
Then on node 1, execute the following:
And then let's look at the state on node 2:
The new row is not in the table on node 2 and it is not in node 2's receive queue, since wsrep_local_recv_queue = 0. However, let's do the following on node 2:
The row does correctly show up at that point:
Is it intentional that pending transactions aren't in the receive queue when a lock is held by FLUSH TABLES WITH READ LOCK? |
| Comments |
| Comment by Geoff Montee (Inactive) [ 2016-07-20 ] | |||||||||
|
Note that wsrep_sync_wait=1 still seems to wait properly in this situation. Node 2:
Node 1:
Node 2:
| |||||||||
| Comment by Jan Lindström (Inactive) [ 2018-07-16 ] | |||||||||
|
The wsrep_local_recv_queue refers to a queue within galera's group communication system, once a message is delivered to the upper layer, it is removed from that queue. In your specific case, the insert is delivered, but is probably stuck applying because of the read lock. |