Bug #52117 | Pending FLUSH TALBES <list> aborts transactions unnecessarily. | ||
---|---|---|---|
Submitted: | 16 Mar 2010 21:27 | Modified: | 8 Sep 2010 2:08 |
Reporter: | Konstantin Osipov (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Locking | Severity: | S3 (Non-critical) |
Version: | 5.5.3-m3 | OS: | Any |
Assigned to: | Konstantin Osipov | CPU Architecture: | Any |
[16 Mar 2010 21:27]
Konstantin Osipov
[16 Mar 2010 21:28]
Konstantin Osipov
This bug needs to be fixed in order to implement the cached object hook optimization.
[16 Mar 2010 23:22]
MySQL Verification Team
Thank you for the bug report.
[17 Mar 2010 21:05]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/103640 2997 Konstantin Osipov 2010-03-18 A fix and a test case for Bug#52117 "Pending FLUSH TALBES <list> aborts transactions unnecessarily".
[18 Mar 2010 16:08]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/103716 2997 Konstantin Osipov 2010-03-18 A fix and a test case for Bug#52117 "Pending FLUSH TALBES <list> aborts transactions unnecessarily". Fix a crash in FLUSH TABLES <list> WITH READ LOCK when the connection issuing the flush had open SQL HANDLERs. @ mysql-test/r/debug_sync.result FLUSH TABLES <list> never hits after_flush_unlock sync point. @ mysql-test/r/flush.result Add a test case for Bug#52117. @ mysql-test/r/lock_multi.result FLUSH TALBE <list> now waits for transactions to complete. @ mysql-test/t/debug_sync.test FLUSH TABLE <list> no longer hits after_flush_unlock debug sync point. @ mysql-test/t/flush.test Add a test case for Bug#52117. @ mysql-test/t/lock_multi.test FLUSH TABLE <list> now waits for transactions. @ sql/mysql_priv.h - reload_acl_and_cache() no longer accepts a table list. - add declaraction for mysql_ha_flush_tables() function, that closes open HANDLER objects, if there are any, for a given list of tables. - rename flush_tables() to flush_unused_tables(). @ sql/mysqld.cc - reload_acl_and_cache() no longer accepts TABLE_LIST. @ sql/sql_base.cc Rename flush_tables() to flush_unused_tables() to avoid confusion with FLUSH TABLES statement implementation. @ sql/sql_handler.cc Implement mysql_ha_flush_tables() function. @ sql/sql_manager.cc Rename flush_tables() to flush_unused_tables(). @ sql/sql_parse.cc Implement a new version of FLUSH TABLES <list> that is transaction-aware. @ sql/sql_show.cc An unrelated fix: make sure we take SHARED locks in mysqld_list_fields() (COM_FIELD_LIST implementation).
[13 Aug 2010 14:15]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/115687 3107 Konstantin Osipov 2010-08-13 Bug#52117 "Pending FLUSH TALBES <list> aborts transactions unnecessarily" The bug was fixed by the patch for Bug 52044. Add a test case. @ mysql-test/r/flush.result Update results (Bug#52117) @ mysql-test/t/flush.test Add a test case for Bug#52117 "Pending FLUSH TALBES <list> aborts transactions unnecessarily"
[13 Aug 2010 14:16]
Konstantin Osipov
Queued the test case into 5.5-runtime.
[17 Aug 2010 20:09]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/116013 3108 Konstantin Osipov 2010-08-18 A follow-up for the patch for Bug#52117: split and reorganize reload_acl_from_cache() and close_cached_tables(). Move the logic responsible for table flush from reload_acl_and_cache(). Reorganize code of SQLCOM_FLUSH. Add comments. @ sql/mysqld.cc Call close_cached_tables() explicitly now, when reload_acl_and_cache() no longer calls it. @ sql/sql_parse.cc Reorganize execution of COM_REFRESH and SQLCOM_FLUSH. Changes in behavior: we no longer flush the database options cache or query cache in FLUSH TABLES WITH READ LOCK. This was not documented, and is apparently a bug or an omission. FLUSH TABLES continues to flush the query cache, as documented, and the database options cache. @ sql/sql_reload.cc FLUSH TABLES WITH GLOBAL READ LOCK used to also flush the query cache. This not documented, and seems to have been a bug, thus is no longer done. @ sql/sql_reload.h Add declarations for new functions.
[25 Aug 2010 9:23]
Bugs System
Pushed into mysql-5.5 5.5.6-m3 (revid:alik@ibmvm-20100825092002-2yvkb3iwu43ycpnm) (version source revid:alik@ibmvm-20100825092002-2yvkb3iwu43ycpnm) (merge vers: 5.5.6-m3) (pib:20)
[30 Aug 2010 8:31]
Bugs System
Pushed into mysql-trunk 5.6.1-m4 (revid:alik@sun.com-20100830082732-n2eyijnv86exc5ci) (version source revid:alik@sun.com-20100830082732-n2eyijnv86exc5ci) (merge vers: 5.6.1-m4) (pib:21)
[30 Aug 2010 8:34]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100830082745-n6sh01wlwh3itasv) (version source revid:alik@sun.com-20100830082745-n6sh01wlwh3itasv) (pib:21)
[8 Sep 2010 2:08]
Paul DuBois
Noted in 5.5.6, 5.6.1 changelogs. A pending FLUSH TABLES tbl_list WITH READ LOCK statement unnecessarily aborted transactions.