Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.6.2
Description
In the third and last part of MDEV-25506, operations that delete .ibd files were refactored so that the deletion would take place after transaction commit.
As part of that refactoring, the lock conflict handling of internal transactions was revised so that if the data dictionary is being locked, any conflict would result in an immediate lock wait timeout error. Such lock conflicts should only be able to exist on the InnoDB persistent statistics tables or some internal tables that are related to the InnoDB FULLTEXT INDEX implementation.
We should try to abandon the concept of 'dictionary transaction' and refactor the InnoDB internal SQL parser so that all table handles will be looked up before the parser is invoked. In this way, no data dictionary latch will be required during the execution, and lock waits can be handled in the normal fashion, without fearing any server hang (such as MDEV-15020).
Making all transactions equal will remove the need to use separate internal transactions for InnoDB DDL operations.
Note: Before MDEV-24589 and MDEV-25506, some InnoDB DDL operations were neither atomic nor rollback-safe, and mixing DDL and DML in one transaction would have been out of the question.
Attachments
Issue Links
- blocks
-
MDEV-18381 Server crashes in ha_innobase::store_lock upon concurrent ALTER and TRUNCATE
- Closed
-
MDEV-25920 Atomic DROP DATABASE
- Open
-
MDEV-25921 Implement CREATE TABLE...SELECT in one transaction
- Open
- causes
-
MDEV-26657 SHOW ENGINE INNODB STATUS displays uninitialized THD::real_id
- Closed
-
MDEV-26772 InnoDB DDL fails with DUPLICATE KEY error
- Closed
-
MDEV-26879 innodb_evict_tables_on_commit_debug=on makes table creation hang
- Closed
-
MDEV-27069 heap-use-after-free in dict_stats_recalc_pool_del()
- Closed
-
MDEV-27469 Assertion `!trx->read_only' failed in trx_undo_report_row_operation on CREATE TABLE
- Closed
-
MDEV-27805 tpcc workload shows regression with MDB-10.6
- Closed
-
MDEV-27909 InnoDB: Failing assertion: state == TRX_STATE_NOT_STARTED || (relaxed && thd_get_error_number(trx->mysql_thd))
- Closed
- is blocked by
-
MDEV-24258 Merge dict_sys.mutex into dict_sys.latch
- Closed
- is caused by
-
MDEV-25506 Atomic DDL: .frm file is removed and orphan InnoDB tablespace is left behind upon crash recovery
- Closed
- is duplicated by
-
MDEV-26490 Assertion `!srv_read_only_mode' failed when using innodb-read-only=1 as a startup option
- Closed
- relates to
-
MDEV-19505 Do not hold mutex while calling que_graph_free()
- Closed
-
MDEV-23484 Rollback unnecessarily acquires dict_operation_lock for every row
- Closed
-
MDEV-23670 Crash during OPTIMIZE TABLE mysql.innodb_table_stats
- Closed
-
MDEV-31979 Assertion `!internal' failed in void trx_t::free()
- Open
-
MDEV-24579 Error table->get_ref_count() after update to 10.5.8
- Closed