diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2021-04-13 16:39:18 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2021-04-14 17:02:29 +0300 |
commit | 6bdba6acad8e4496552c8447df9912e6cc3212d7 (patch) | |
tree | d7ff2345e7e571f2523552688ebbfa034975d3d6 | |
parent | 767d63374e634f8ede5e18a8a74127a113013467 (diff) | |
download | mariadb-git-bb-10.4-MDEV-24485.tar.gz |
MDEV-24485 : galera.galera_bf_kill_debug MTR failed: A long semaphore waitbb-10.4-MDEV-24485
If transaction is already aborting we should not try to
abort it again.
-rw-r--r-- | sql/wsrep_thd.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc index 023da27c3c1..f95f567c57e 100644 --- a/sql/wsrep_thd.cc +++ b/sql/wsrep_thd.cc @@ -238,11 +238,14 @@ static void wsrep_rollback_process(THD *rollbacker, mysql_mutex_lock(&thd->LOCK_thd_data); wsrep::client_state& cs(thd->wsrep_cs()); const wsrep::transaction& tx(cs.transaction()); - if (tx.state() == wsrep::transaction::s_aborted) + enum wsrep::transaction::state state= tx.state(); + if (state == wsrep::transaction::s_aborted || + state == wsrep::transaction::s_aborting) { - WSREP_DEBUG("rollbacker thd already aborted: %llu state: %d", + WSREP_DEBUG("Rollbacker thd " + "already aborted or aborting: %llu state: %s", (long long)thd->real_id, - tx.state()); + wsrep::to_c_string(state)); mysql_mutex_unlock(&thd->LOCK_thd_data); continue; } |