diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2019-11-04 18:09:09 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2019-11-07 23:58:44 +0100 |
commit | 3d4a2463475437b001fb3837faeca95311f14406 (patch) | |
tree | 236780da8b2e1c97e9b5df390b48551c38395131 | |
parent | 72b0b0a2de68bbb5ef22995dbf73bbf8b1aa3363 (diff) | |
download | mariadb-git-bb-10.5-wlad-MDEV-16264.tar.gz |
Fix race condition between purge_sys::stop() and purge_sys::resume().bb-10.5-wlad-MDEV-16264
Found by Matthias' tests.
Add latch lock that was missing in resume()
-rw-r--r-- | storage/innobase/trx/trx0purge.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/storage/innobase/trx/trx0purge.cc b/storage/innobase/trx/trx0purge.cc index cef2100cfa6..dcd755aae38 100644 --- a/storage/innobase/trx/trx0purge.cc +++ b/storage/innobase/trx/trx0purge.cc @@ -1358,7 +1358,7 @@ void purge_sys_t::resume() ut_ad(!srv_undo_sources); return; } - + rw_lock_x_lock(&latch); int32_t paused= m_paused--; ut_a(paused); @@ -1369,4 +1369,5 @@ void purge_sys_t::resume() srv_purge_wakeup(); MONITOR_ATOMIC_INC(MONITOR_PURGE_RESUME_COUNT); } + rw_lock_x_unlock(&latch); } |