summaryrefslogtreecommitdiff
path: root/include/hash.h
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-03-03 13:49:49 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-03-03 13:49:49 +0200
commit1c7d4f8de7db9021a19bcb52d68d00e2d3106866 (patch)
tree25c30708e87b2fd2d773d182fff1b2b3c86d198d /include/hash.h
parent80ac9ec1cc10d56b048272642653d5d301394779 (diff)
downloadmariadb-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