1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2026-10-23 09:48:57 +03:00

Release high prio client mutex before commit order wait

High priority transaction did not release mutex before going
into commit order wait. This allowed a deadlock if an applier
tried to access transaction state while the thread was in
commit order wait.

As a fix, unlock client mutex before calling commit_order_enter().
This commit is contained in:
Teemu Ollakka
2019-02-12 20:09:22 +02:00
parent 20b52ff1dd
commit a04a6e56c6

View File

@@ -437,7 +437,9 @@ int wsrep::transaction::before_commit()
{
ret = 0;
}
lock.unlock();
ret = ret || provider().commit_order_enter(ws_handle_, ws_meta_);
lock.lock();
if (ret)
{
state(lock, s_must_abort);