mariadb/storage/innobase/trx
Marko Mäkelä b82abc7163 MDEV-35701 trx_t::autoinc_locks causes unnecessary dynamic memory allocation
trx_t::autoinc_locks: Use small_vector<lock_t*,4> in order to avoid any
dynamic memory allocation in the most common case (a statement is
holding AUTO_INCREMENT locks on at most 4 tables or partitions).

lock_cancel_waiting_and_release(): Instead of removing elements from
the middle, simply assign nullptr, like lock_table_remove_autoinc_lock().

The added test innodb.auto_increment_lock_mode covers the dynamic memory
allocation as well as nondeterministically (occasionally) covers
the out-of-order lock release in lock_table_remove_autoinc_lock().

Reviewed by: Debarun Banerjee
2025-01-15 16:55:01 +02:00
..
trx0i_s.cc MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
trx0purge.cc MDEV-32175: Reduce page_align(), page_offset() calls 2024-11-21 11:01:30 +02:00
trx0rec.cc MDEV-35174 Possible hang in trx_undo_prev_version() 2024-10-16 14:37:44 +03:00
trx0roll.cc MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
trx0rseg.cc MDEV-34678 pthread_mutex_init() without pthread_mutex_destroy() 2024-08-14 07:54:15 +03:00
trx0sys.cc MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
trx0trx.cc MDEV-35701 trx_t::autoinc_locks causes unnecessary dynamic memory allocation 2025-01-15 16:55:01 +02:00
trx0undo.cc Merge 10.5 into 10.6 2024-11-29 12:37:46 +02:00