SHOW GLOBAL STATUS hangs while a large transaction is certifying and/or applying
Bug #1126316 reported by
Jay Janssen
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Galera |
Fix Released
|
Undecided
|
Unassigned | |||
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC | Status tracked in 5.6 | |||||
5.5 |
Fix Released
|
Undecided
|
Unassigned | |||
5.6 |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
In this test of large transactions, myq_status will hang just after a large transaction is received:
https:/
This appears to be the SHOW GLOBAL STATUS that myq_status runs hanging on some lock. I don't see any reason why certification should block SHOW GLOBAL STATUS.
no longer affects: | codership-mysql |
no longer affects: | codership-mysql/5.6 |
no longer affects: | codership-mysql/5.5 |
To post a comment you must log in.
The same problem is repeatable when global lock is set on a node with "flush tables with read lock" while wsrep_causal_reads is set.
Steps to reproduce:
node2>select @@wsrep_ causal_ reads; ------- ------- --+ causal_ reads | ------- ------- --+ ------- ------- --+
+------
| @@wsrep_
+------
| 1 |
+------
1 row in set (0.01 sec)
node2>flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)
-----------------
node3>insert into test.t1 values (null);
Query OK, 1 row affected (0.02 sec)
-----------------
node2>show status like 'Threads%';
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
node2>select @@version;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
node2>show variables like 'version'; ------- --+---- ------- ----+ ------- --+---- ------- ----+ ------- --+---- ------- ----+
+------
| Variable_name | Value |
+------
| version | 5.5.34-55-log |
+------
1 row in set (0.00 sec)
node2>set wsrep_causal_ reads=0;
Query OK, 0 rows affected (0.00 sec)
node2>select @@version;
+---------------+
| @@version |
+---------------+
| 5.5.34-55-log |
+---------------+
1 row in set (0.00 sec)
node2>show status like 'Threads%'; ------- ------+ ------- + ------- ------+ ------- + ------- ------+ ------- +
+------
| Variable_name | Value |
+------
| Threads_cached | 0 |
| Threads_connected | 34 |
| Threads_created | 42 |
| Threads_running | 1 |
+------
4 rows in set (0.01 sec)
This is important as it breaks backups made with Percona Xtrabackup, as it does some SHOW STATUS queries after it sets FTWRL. innobackupex line 1652. innobackupex line 1652."
The example error from innobackupex script looks like this:
"DBD::mysql::db selectall_hashref failed: Lock wait timeout exceeded; try restarting transaction at /usr/bin/
innobackupex: Error:
Error executing 'SHOW STATUS': DBD::mysql::db selectall_hashref failed: Lock wait timeout exceeded; try restarting transaction at /usr/bin/