summaryrefslogtreecommitdiff
path: root/sql/wsrep_var.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-10-05 10:30:26 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-10-05 10:30:26 +0300
commitb4fb15ccd4f2864483f8644c0236e63c814c8beb (patch)
tree7ac2c265d0ef0128b1133d251f8998461de8362b /sql/wsrep_var.cc
parent3b72b35a776b473c15df5afa5846b859797d9473 (diff)
downloadmariadb-git-b4fb15ccd4f2864483f8644c0236e63c814c8beb.tar.gz
MDEV-16664: Remove innodb_lock_schedule_algorithmbb-10.6-MDEV-16664
The setting innodb_lock_schedule_algorithm=VATS that was introduced in MDEV-11039 (commit 021212b525e39d332cddd0b9f1656e2fa8044905) causes conflicting exclusive locks to be incorrectly granted to two transactions. Specifically, in lock_rec_insert_by_trx_age() the predicate !lock_rec_has_to_wait_in_queue(in_lock) would hold even though an active transaction is already holding an exclusive lock. This was observed between two DELETE of the same clustered index record. The HASH_DELETE invocation in lock_rec_enqueue_waiting() may be related. Due to lack of progress in diagnosing the problem, we will remove the option. The unsafe option was enabled by default between commit 0c15d1a6ff0d18da946f050cfeac176387a76112 (MariaDB 10.2.3) and the parent of commit 1cc1d0429da14a041a6240c6fce17e0d31cad8e2 (MariaDB 10.2.17, 10.3.9), and it was deprecated in commit 295e2d500b31819422c97ad77beb6226b961c207 (MariaDB 10.2.34).
Diffstat (limited to 'sql/wsrep_var.cc')
-rw-r--r--sql/wsrep_var.cc19
1 files changed, 1 insertions, 18 deletions
diff --git a/sql/wsrep_var.cc b/sql/wsrep_var.cc
index 40689b7cf88..8c9170a3745 100644
--- a/sql/wsrep_var.cc
+++ b/sql/wsrep_var.cc
@@ -97,12 +97,6 @@ static void wsrep_set_wsrep_on()
strcmp(wsrep_provider, WSREP_NONE);
}
-/* This is intentionally declared as a weak global symbol, so that
-linking will succeed even if the server is built with a dynamically
-linked InnoDB. */
-ulong innodb_lock_schedule_algorithm __attribute__((weak));
-struct handlerton* innodb_hton_ptr __attribute__((weak));
-
bool wsrep_on_update (sys_var *self, THD* thd, enum_var_type var_type)
{
if (var_type == OPT_GLOBAL) {
@@ -138,18 +132,7 @@ bool wsrep_on_update (sys_var *self, THD* thd, enum_var_type var_type)
bool wsrep_on_check(sys_var *self, THD* thd, set_var* var)
{
- bool new_wsrep_on= (bool)var->save_result.ulonglong_value;
-
- if (check_has_super(self, thd, var))
- return true;
-
- if (new_wsrep_on && innodb_hton_ptr && innodb_lock_schedule_algorithm != 0) {
- my_message(ER_WRONG_ARGUMENTS, " WSREP (galera) can't be enabled "
- "if innodb_lock_schedule_algorithm=VATS. Please configure"
- " innodb_lock_schedule_algorithm=FCFS and restart.", MYF(0));
- return true;
- }
- return false;
+ return check_has_super(self, thd, var);
}
bool wsrep_causal_reads_update (sys_var *self, THD* thd, enum_var_type var_type)