diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-03-03 13:49:49 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-03-03 13:49:49 +0200 |
commit | 1c7d4f8de7db9021a19bcb52d68d00e2d3106866 (patch) | |
tree | 25c30708e87b2fd2d773d182fff1b2b3c86d198d /include/hash.h | |
parent | 80ac9ec1cc10d56b048272642653d5d301394779 (diff) | |
download | mariadb-git-1c7d4f8de7db9021a19bcb52d68d00e2d3106866.tar.gz |
MDEV-25016 Race condition between lock_sys_t::cancel() and page split or merge
In commit 8d16da14873d880b9b5121de1619b7cb5e0f7135 (MDEV-24789)
we accidentally introduced a race condition. During the time a
waiting lock request is being removed, the request might be
moved to another page due to a concurrent page split or merge.
To prevent this, we must hold exclusive lock_sys.latch when releasing
a record lock.
lock_release_autoinc_locks(): Avoid a potential hang.
No dict_table_t::lock_mutex must be waited for while already holding
lock_sys.wait_mutex or trx_t::mutex.
lock_cancel_waiting_and_release(): Correctly handle AUTO_INCREMENT locks.
Diffstat (limited to 'include/hash.h')
0 files changed, 0 insertions, 0 deletions