mariadb/storage/innobase/row
Marko Mäkelä 59caf2c3c1 MDEV-13485 MTR tests fail massively with --innodb-sync-debug
The parameter --innodb-sync-debug, which is disabled by default,
aims to find potential deadlocks in InnoDB.

When the parameter is enabled, lots of tests failed. Most of these
failures were due to bogus diagnostics. But, as part of this fix,
we are also fixing a bug in error handling code and removing dead
code, and fixing cases where an uninitialized mutex was being
locked and unlocked.

dict_create_foreign_constraints_low(): Remove an extraneous
mutex_exit() call that could cause corruption in an error handling
path. Also, do not unnecessarily acquire dict_foreign_err_mutex.
Its only purpose is to control concurrent access to
dict_foreign_err_file.

row_ins_foreign_trx_print(): Replace a redundant condition with a
debug assertion.

srv_dict_tmpfile, srv_dict_tmpfile_mutex: Remove. The
temporary file is never being written to or read from.

log_free_check(): Allow SYNC_FTS_CACHE (fts_cache_t::lock)
to be held.

ha_innobase::inplace_alter_table(), row_merge_insert_index_tuples():
Assert that no unexpected latches are being held.

sync_latch_meta_init(): Properly initialize dict_operation_lock_key
at SYNC_DICT_OPERATION. dict_sys->mutex is SYNC_DICT, and
the now-removed SRV_DICT_TMPFILE was wrongly registered at
SYNC_DICT_OPERATION.

buf_block_init(): Correctly register buf_block_t::debug_latch.
It was previously misleadingly reported as LATCH_ID_DICT_FOREIGN_ERR.

latch_level_t: Correct the relative latching order of
SYNC_IBUF_PESS_INSERT_MUTEX,SYNC_INDEX_TREE and
SYNC_FILE_FORMAT_TAG,SYNC_DICT_OPERATION to avoid bogus failures.

row_drop_table_for_mysql(): Avoid accessing btr_defragment_mutex
if the defragmentation thread has not been started. This is the
case during fts_drop_orphaned_tables() in recv_recovery_rollback_active().

fil_space_destroy_crypt_data(): Avoid acquiring fil_crypt_threads_mutex
when it is uninitialized. We may have created crypt_data before the
mutex was created, and the mutex creation would be skipped if
InnoDB startup failed or --innodb-read-only was specified.
2017-08-23 08:44:11 +03:00
..
row0ext.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
row0ftsort.cc MDEV-11649 Uninitialized field fts_token->position in innodb_fts.innodb_fts_plugin 2017-06-30 15:03:53 +03:00
row0import.cc MDEV-13105 InnoDB fails to load a table with PAGE_COMPRESSION_LEVEL after upgrade from 10.1.20 2017-07-05 14:55:56 +03:00
row0ins.cc MDEV-13485 MTR tests fail massively with --innodb-sync-debug 2017-08-23 08:44:11 +03:00
row0log.cc Bug #24961167 CONCURRENT INSERT FAILS IF TABLE DOES REBUILD 2017-08-09 22:28:30 +03:00
row0merge.cc MDEV-13485 MTR tests fail massively with --innodb-sync-debug 2017-08-23 08:44:11 +03:00
row0mysql.cc MDEV-13485 MTR tests fail massively with --innodb-sync-debug 2017-08-23 08:44:11 +03:00
row0purge.cc Assert that DB_TRX_ID must be set on delete-marked records 2017-07-01 11:02:58 +03:00
row0quiesce.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
row0row.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
row0sel.cc Merge branch '10.1' into 10.2 2017-08-17 11:38:34 +02:00
row0trunc.cc Bug #25357789 INNODB: LATCH ORDER VIOLATION DURING TRUNCATE TABLE IF INNODB_SYNC_DEBUG ENABLED 2017-08-09 22:28:30 +03:00
row0uins.cc Assert that DB_TRX_ID must be set on delete-marked records 2017-07-01 11:02:58 +03:00
row0umod.cc Assert that DB_TRX_ID must be set on delete-marked records 2017-07-01 11:02:58 +03:00
row0undo.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
row0upd.cc MDEV-13498 DELETE with CASCADE constraints takes long time / MDEV-13246 2017-08-15 10:51:43 +03:00
row0vers.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00