diff options
author | Teemu Ollakka <teemu.ollakka@galeracluster.com> | 2019-02-12 20:12:05 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2019-02-19 17:09:19 +0200 |
commit | 7ae685d032fbb885e59a547e445b79cb6220e417 (patch) | |
tree | 2cf91083bb0079f7dc536e97a49f64d637894a30 /sql/wsrep_high_priority_service.cc | |
parent | 48554fe2db9643f0d611214b6719af7240653886 (diff) | |
download | mariadb-git-7ae685d032fbb885e59a547e445b79cb6220e417.tar.gz |
Fixed replaying bugs found with multimaster load
The replayer did not signal replaying waiters. Added
mysql_cond_broadcast() after replaying is over.
Assertion on client error failed after replay attempt failed due
to certification failure. At this point the transaction does not
go through client state, so the client error cannot be overridden.
Assign ER_LOCK_DEADLOCK to thd directly instead.
Use timed cond wait when waiting for replayers to finish and
check if the transaction has been BF aborted during the wait.
Diffstat (limited to 'sql/wsrep_high_priority_service.cc')
-rw-r--r-- | sql/wsrep_high_priority_service.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/wsrep_high_priority_service.cc b/sql/wsrep_high_priority_service.cc index f1637e2ece0..64fe4ce52fe 100644 --- a/sql/wsrep_high_priority_service.cc +++ b/sql/wsrep_high_priority_service.cc @@ -598,7 +598,7 @@ Wsrep_replayer_service::~Wsrep_replayer_service() } else if (m_replay_status == wsrep::provider::error_certification_failed) { - DBUG_ASSERT(thd->wsrep_cs().current_error() == wsrep::e_deadlock_error); + wsrep_override_error(thd, ER_LOCK_DEADLOCK); } else { |