Bug #65777 | killing 'Flush tables' in 'waiting for table flush' makes other queries block | ||
---|---|---|---|
Submitted: | 30 Jun 2012 20:01 | Modified: | 27 Nov 2015 17:21 |
Reporter: | vishnu chanderraju (OCA) | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S2 (Serious) |
Version: | 5.5.21 | OS: | Other (mac-10.7.1 & debian) |
Assigned to: | CPU Architecture: | Any | |
Tags: | blocked, flush tables, myisam, waiting for flush |
[30 Jun 2012 20:01]
vishnu chanderraju
[30 Jun 2012 20:08]
Valeriy Kravchuk
Please, check if the same problem still happens with a newer version, 5.5.24.
[2 Jul 2012 2:59]
vishnu chanderraju
will test over .24 and update the bug. with regards, ch Vishnu
[3 Aug 2012 1:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[30 Jul 2015 2:24]
Marcos Albe
Verified as described with 5.5.43 Community seesion 1: ========== bm-support01 in ~/sandboxes/msb_5_5_43 ○ → ./use Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.43 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql [localhost] {msandbox} ((none)) > USE test; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql [localhost] {msandbox} (test) > DROP TABLE IF EXISTS flushes; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql [localhost] {msandbox} (test) > mysql [localhost] {msandbox} (test) > CREATE TABLE `flushes` ( -> `id` int(11) DEFAULT NULL -> ) ENGINE=INNODB; Query OK, 0 rows affected (0.00 sec) mysql [localhost] {msandbox} (test) > mysql [localhost] {msandbox} (test) > insert into flushes values(1); Query OK, 1 row affected (0.00 sec) mysql [localhost] {msandbox} (test) > insert into flushes values(2); Query OK, 1 row affected (0.00 sec) mysql [localhost] {msandbox} (test) > insert into flushes values(3); Query OK, 1 row affected (0.00 sec) mysql [localhost] {msandbox} (test) > mysql [localhost] {msandbox} (test) > select * from flushes where id=3 or sleep(600); session 2: ========== mysql [localhost] {msandbox} ((none)) > flush tables with read lock; ^CCtrl-C -- sending "KILL QUERY 2" to server ... Ctrl-C -- query aborted. ERROR 1317 (70100): Query execution was interrupted mysql [localhost] {msandbox} ((none)) > Bye session 3: ========== mysql [localhost] {msandbox} ((none)) > use test; Database changed mysql [localhost] {msandbox} (test) > select * from flushes; seesion 4: ========== mysql [localhost] {msandbox} (test) > insert into flushes values(5); session 5 ========== bm-support01 in ~/sandboxes/msb_5_5_43 ○ → ./use Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 5.5.43 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql [localhost] {msandbox} ((none)) > show processlist; +----+----------+-----------+------+------------+------+-------------------------+------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+----------+-----------+------+------------+------+-------------------------+------------------------------------------------+ | 1 | msandbox | localhost | test | Query | 77 | User sleep | select * from flushes where id=3 or sleep(600) | | 3 | msandbox | localhost | test | Field List | 42 | Waiting for table flush | | | 6 | msandbox | localhost | test | Query | 34 | Waiting for table flush | select * from flushes | | 7 | msandbox | localhost | test | Query | 25 | Waiting for table flush | insert into flushes values(5) | | 8 | msandbox | localhost | NULL | Query | 0 | NULL | show processlist | +----+----------+-----------+------+------------+------+-------------------------+------------------------------------------------+ 5 rows in set (0.00 sec) mysql [localhost] {msandbox} ((none)) > show engine innodb status\G *************************** 1. row *************************** Type: InnoDB .... ------------ TRANSACTIONS ------------ Trx id counter 505 Purge done for trx's n:o < 0 undo n:o < 0 History list length 0 LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 0, not started MySQL thread id 8, OS thread handle 0x7ffff45f3700, query id 44 localhost msandbox show engine innodb status ---TRANSACTION 504, ACTIVE 137 sec mysql tables in use 1, locked 0 MySQL thread id 1, OS thread handle 0x7ffff46f7700, query id 21 localhost msandbox User sleep select * from flushes where id=3 or sleep(600) Trx read view will not see trx with id >= 505, sees < 505 --------
[30 Jul 2015 2:31]
Marcos Albe
Verified in 5.6.25 bm-support01 in ~/sandboxes/msb_5_6_25 ○ → ./use Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.6.25-73.0 Percona Server (GPL), Release 73.0, Revision 5ccddf8 Copyright (c) 2009-2015 Percona LLC and/or its affiliates Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql [localhost] {msandbox} ((none)) > show processlist; +----+----------+-----------+------+---------+------+-------------------------+------------------------------------------------+-----------+---------------+ | Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined | +----+----------+-----------+------+---------+------+-------------------------+------------------------------------------------+-----------+---------------+ | 1 | msandbox | localhost | test | Query | 79 | User sleep | select * from flushes where id=3 or sleep(600) | 0 | 0 | | 4 | msandbox | localhost | test | Query | 37 | Waiting for table flush | select * from flushes | 0 | 0 | | 5 | msandbox | localhost | test | Query | 15 | Waiting for table flush | insert into flushes values(5) | 0 | 0 | | 6 | msandbox | localhost | NULL | Query | 0 | init | show processlist | 0 | 0 | +----+----------+-----------+------+---------+------+-------------------------+------------------------------------------------+-----------+---------------+ ------------ TRANSACTIONS ------------ Trx id counter 3335 Purge done for trx's n:o < 1294 undo n:o < 0 state: running but idle History list length 3 LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 0, not started MySQL thread id 6, OS thread handle 0x7ffff7e75700, query id 31 localhost msandbox init show engine innodb status ---TRANSACTION 3334, ACTIVE 138 sec mysql tables in use 1, locked 0 MySQL thread id 1, OS thread handle 0x7ffff7f38700, query id 15 localhost msandbox User sleep select * from flushes where id=3 or sleep(600) Trx read view will not see trx with id >= 3335, sees < 3335
[12 Oct 2018 6:52]
MySQL Verification Team
Is this bug duplicated of Bug#44884 ?