Re: 87188cd3309: MDEV-29744: Fix incorrect locking order of LOCK_log/LOCK_commit_ordered and LOCK_global_system_variables
Hi, Kristian, Mostly ok, but I'd prefer not to access max_binlog_size without any protection, so suggest to do something like ulong saved= max_binlog_size; mysql_mutex_unlock(&LOCK_global_system_variables); mysql_bin_log.set_max_size(saved); mysql_mutex_lock(&LOCK_global_system_variables); On Jan 08, Kristian Nielsen wrote:
revision-id: 87188cd3309 (mariadb-10.6.20-47-g87188cd3309) parent(s): 7372ecc3965 author: Kristian Nielsen committer: Kristian Nielsen timestamp: 2024-12-05 09:51:17 +0100 message:
MDEV-29744: Fix incorrect locking order of LOCK_log/LOCK_commit_ordered and LOCK_global_system_variables
--- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -1660,7 +1660,9 @@ Sys_max_binlog_stmt_cache_size(
static bool fix_max_binlog_size(sys_var *self, THD *thd, enum_var_type type) { + mysql_mutex_unlock(&LOCK_global_system_variables); mysql_bin_log.set_max_size(max_binlog_size); + mysql_mutex_lock(&LOCK_global_system_variables); return false; } static Sys_var_on_access_global<Sys_var_ulong,
Regards, Sergei Chief Architect, MariaDB Server and security@mariadb.org
Sergei Golubchik <serg@mariadb.org> writes:
Mostly ok, but I'd prefer not to access max_binlog_size without any protection, so suggest to do something like
ulong saved= max_binlog_size; mysql_mutex_unlock(&LOCK_global_system_variables); mysql_bin_log.set_max_size(saved); mysql_mutex_lock(&LOCK_global_system_variables);
Makes sense, thanks Serg! - Kristian.
participants (2)
-
Kristian Nielsen
-
Sergei Golubchik