[MDEV-12647] Galera + LOCK TABLES deadlock Created: 2017-04-30 Updated: 2017-04-30 Resolved: 2017-04-30 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Galera |
| Affects Version/s: | None |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Andrew Garner | Assignee: | Unassigned |
| Resolution: | Not a Bug | Votes: | 0 |
| Labels: | None | ||
| Environment: |
MariaDB 10.1.18 / Galera 25.3.17 |
||
| Attachments: |
|
| Description |
|
With the following sequence of commands, node2 always gets stuck and all writes to this node hang. Node1:
Node2:
Node1:
Node2:
Node1:
At this point, any writes on node2 will hang and even after UNLOCK TABLES on node1, the INSERT on node2 remains in a hung state. The connection on node2 holding the table lock cannot be terminated through KILL commands. I've attached gdb "thread apply all bt" output, in case it is useful. I do see in my error log on node2 that an abort was attempted:
That behavior I do expect, but it did not seem to successfully unstick this particular case. Also worth mentioning is that if I continue to write to the other cluster nodes, wsrep_local_recv_queue rises on node2 - I was expecting flow control to kick in at some point given that this node state is reported as "Synced", and is using defaults (i.e. gcs.fc_limit=16). Also reproduced under MariaDB 10.1.22 (and tested w/ latest galera 25.3.20) , but the attached logs are from an older MariaDB 10.1.18 (galera 25.3.17) environment. |
| Comments |
| Comment by Daniel Black [ 2017-04-30 ] |
|
Unsupported as per https://mariadb.com/kb/en/mariadb/mariadb-galera-cluster-known-limitations/ |