mariadb/mysql-test/suite/gcol/t
Thirunarayanan Balathandayuthapani 8b0d4cff07 MDEV-15855 Deadlock between purge thread and DDL statement
Problem:
========
Truncate operation holds MDL on the table (t1) and tries to
acquire InnoDB dict_operation_lock. Purge holds dict_operation_lock
and tries to acquire MDL on the table (t1) to evaluate virtual
column expressions for indexed virtual columns.
It leads to deadlock of purge and truncate table (DDL).

Solution:
=========
If purge tries to acquire MDL on the table then it should do the following:

i) Purge should release all innodb latches (including dict_operation_lock)
before acquiring metadata lock on the table.

ii) After acquiring metadata lock on the table, it should check whether the
table was dropped or renamed. If the table is dropped then purge should
ignore the undo log record. If the table is renamed then it should
release the old MDL and acquire MDL on the new name.

iii) Once purge acquires MDL, it should use the SQL table handle for all
the remaining virtual index for the purge record.

purge_node_t: Introduce new virtual column information to know whether
the MDL was acquired successfully.

This is joint work with Marko Mäkelä.
2018-07-06 17:13:53 +03:00
..
gcol_archive.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_blackhole.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_blocked_sql_funcs_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_blocked_sql_funcs_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_bug20746926.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_bugfixes.test Import a test case from MySQL 5.7.19 2017-08-09 22:28:30 +03:00
gcol_column_def_options_innodb.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
gcol_column_def_options_myisam.test MDEV-5800 MyISAM support for indexed vcols 2016-12-12 20:27:36 +01:00
gcol_handler_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_handler_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_ins_upd_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_ins_upd_myisam.test MDEV-5800 MyISAM support for indexed vcols 2016-12-12 20:27:36 +01:00
gcol_keys_innodb.test enable innodb tests for virtual indexed columns (sic!) 2017-08-14 19:45:59 +02:00
gcol_keys_myisam.test MDEV-5800 MyISAM support for indexed vcols 2016-12-12 20:27:36 +01:00
gcol_memory.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_merge.test MDEV-11066 use MySQL terminology for "virtual columns" 2016-12-12 20:35:51 +01:00
gcol_non_stored_columns_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_non_stored_columns_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_partition_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_partition_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_rejected_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_rollback.test gcol.gcol_rollback could fail with errors in server log 2017-08-18 02:48:43 +03:00
gcol_select_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_select_myisam.test MDEV-5800 MyISAM support for indexed vcols 2016-12-12 20:27:36 +01:00
gcol_supported_sql_funcs_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_supported_sql_funcs_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_trigger_sp_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_trigger_sp_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_update.test Do not require a debug non-embedded server in the test 2017-09-13 16:02:31 +03:00
gcol_view_innodb.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
gcol_view_myisam.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00
innodb_partition.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
innodb_prefix_index_check.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
innodb_virtual_basic.test MDEV-13795/MDEV-14332 Corruption during online table-rebuilding ALTER when VIRTUAL columns exist 2017-11-09 23:39:12 +02:00
innodb_virtual_blob.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
innodb_virtual_debug.test MDEV-16376 ASAN: heap-use-after-free in gcol.innodb_virtual_debug 2018-06-04 15:55:37 +03:00
innodb_virtual_debug_purge.test MDEV-15855 Deadlock between purge thread and DDL statement 2018-07-06 17:13:53 +03:00
innodb_virtual_fk.test MDEV-15553 Assertion failed in dict_table_get_col_name 2018-04-05 15:01:17 +03:00
innodb_virtual_fk_restart.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
innodb_virtual_index.test Bug 27122803 - BACKPORT FIX FOR BUG 25899959 TO MYSQL-5.7 2018-05-14 23:29:13 +03:00
innodb_virtual_purge.test Remove wait_innodb_all_purged.inc 2017-08-08 09:44:38 +03:00
innodb_virtual_rebuild.test MDEV-13795/MDEV-14332 Corruption during online table-rebuilding ALTER when VIRTUAL columns exist 2017-11-09 23:39:12 +02:00
innodb_virtual_stats.test Adjust the test innodb.virtual_stats and rename to gcol.innodb_virtual_stats 2017-12-06 10:37:08 +02:00
innodb_wl8114.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
main_alter_table.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
main_mysqldump.test MDEV-5800 InnoDB support for indexed vcols 2016-12-12 20:27:42 +01:00
rpl_gcol.test gcol mysql-test suite from 5.7 2016-12-12 20:27:36 +01:00