summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2021-04-13 16:39:18 +0300
committerJan Lindström <jan.lindstrom@mariadb.com>2021-04-14 17:02:29 +0300
commit6bdba6acad8e4496552c8447df9912e6cc3212d7 (patch)
treed7ff2345e7e571f2523552688ebbfa034975d3d6
parent767d63374e634f8ede5e18a8a74127a113013467 (diff)
downloadmariadb-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.cc9
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;
}