summaryrefslogtreecommitdiff
path: root/plugin/semisync
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2012-06-21 19:02:53 +0200
committerunknown <knielsen@knielsen-hq.org>2012-06-21 19:02:53 +0200
commite7362d457a41a8c8a1925c2d0be59df450511320 (patch)
tree17972870d7ca990074c5a1e3c74017c68060856c /plugin/semisync
parent14b756c7392daecefdf025d8a06998279926aaf2 (diff)
downloadmariadb-git-e7362d457a41a8c8a1925c2d0be59df450511320.tar.gz
MDEV-359: Fix another case where switch-off semisync could cause a race that ended with server crash.
This one was when the code releases and reaquires the lock with pthread_cond_wait() - and semisync is switched off meanwhile.
Diffstat (limited to 'plugin/semisync')
-rw-r--r--plugin/semisync/semisync_master.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/plugin/semisync/semisync_master.cc b/plugin/semisync/semisync_master.cc
index cb60d8e67d3..8573c4dcbde 100644
--- a/plugin/semisync/semisync_master.cc
+++ b/plugin/semisync/semisync_master.cc
@@ -744,6 +744,7 @@ int ReplSemiSyncMaster::commitTrx(const char* trx_wait_binlog_name,
must have been removed from ActiveTranx.
*/
assert(thd_killed(NULL) ||
+ !getMasterEnabled() ||
!active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name,
trx_wait_binlog_pos));