diff options
author | Daniele Sciascia <daniele.sciascia@galeracluster.com> | 2019-12-04 08:21:14 +0100 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2019-12-04 09:21:14 +0200 |
commit | aab6cefe8dc132ec6a16e6af5c616765671ac9af (patch) | |
tree | 0e804535537ed40581a6feed0f10e180371e97a1 /sql/wsrep_thd.cc | |
parent | 0b8b11b0b15f2d3d20dc801e50fa2beedc080dad (diff) | |
download | mariadb-git-aab6cefe8dc132ec6a16e6af5c616765671ac9af.tar.gz |
MDEV-20848 Fixes for MTR test galera_sr.GCF-1060 (#1421)
This patch contains two fixes:
* wsrep_handle_mdl_conflict(): handle the case where SR transaction
is in aborting state. Previously, a BF-BF conflict was reported, and
the process would abort.
* wsrep_thd_bf_abort(): do not restore thread vars after calling
wsrep_bf_abort(). Thread vars are already restored in wsrep-lib if
necessary. This also removes the assumption that the caller of
wsrep_thd_bf_abort() is the given bf_thd, which is not the case.
Also in this patch:
* Remove unnecessary check for active victim transaction in
wsrep_thd_bf_abort(): the exact same check is performed later in
wsrep_bf_abort().
* Make wsrep_thd_bf_abort() and wsrep_log_thd() const-correct.
* Change signature of wsrep_abort_thd() to take THD pointers instead
of void pointers.
Diffstat (limited to 'sql/wsrep_thd.cc')
-rw-r--r-- | sql/wsrep_thd.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc index 9d70875c027..8b535b41a43 100644 --- a/sql/wsrep_thd.cc +++ b/sql/wsrep_thd.cc @@ -345,7 +345,7 @@ void wsrep_fire_rollbacker(THD *thd) } -int wsrep_abort_thd(void *bf_thd_ptr, void *victim_thd_ptr, my_bool signal) +int wsrep_abort_thd(THD *bf_thd_ptr, THD *victim_thd_ptr, my_bool signal) { DBUG_ENTER("wsrep_abort_thd"); THD *victim_thd= (THD *) victim_thd_ptr; @@ -373,7 +373,7 @@ int wsrep_abort_thd(void *bf_thd_ptr, void *victim_thd_ptr, my_bool signal) bool wsrep_bf_abort(const THD* bf_thd, THD* victim_thd) { - WSREP_LOG_THD((THD*)bf_thd, "BF aborter before"); + WSREP_LOG_THD(bf_thd, "BF aborter before"); WSREP_LOG_THD(victim_thd, "victim before"); wsrep::seqno bf_seqno(bf_thd->wsrep_trx().ws_meta().seqno()); |