diff --git a/server/modules/monitor/mariadbmon/mariadbmon.cc b/server/modules/monitor/mariadbmon/mariadbmon.cc index 6a4bed111..f4355004c 100644 --- a/server/modules/monitor/mariadbmon/mariadbmon.cc +++ b/server/modules/monitor/mariadbmon/mariadbmon.cc @@ -958,12 +958,17 @@ void MariaDBMonitor::set_slave_heartbeat(MariaDBServer* server) * * @param setting_name Setting to disable */ -void MariaDBMonitor::disable_setting(const char* setting) +void MariaDBMonitor::disable_setting(const std::string& setting) { - MXS_CONFIG_PARAMETER p = {}; - p.name = const_cast(setting); - p.value = const_cast("false"); - monitor_add_parameters(m_monitor, &p); + Worker* worker = static_cast(mxs_rworker_get(MXS_RWORKER_MAIN)); + + worker->post([=]() + { + MXS_CONFIG_PARAMETER p = {}; + p.name = const_cast(setting.c_str()); + p.value = const_cast("false"); + monitor_add_parameters(m_monitor, &p); + }, NULL, EXECUTE_AUTO); } /** diff --git a/server/modules/monitor/mariadbmon/mariadbmon.hh b/server/modules/monitor/mariadbmon/mariadbmon.hh index 8a98c8285..59b154b61 100644 --- a/server/modules/monitor/mariadbmon/mariadbmon.hh +++ b/server/modules/monitor/mariadbmon/mariadbmon.hh @@ -264,7 +264,7 @@ private: int seconds_remaining); // Other methods - void disable_setting(const char* setting); + void disable_setting(const std::string& setting); bool check_sql_files(); void enforce_read_only_on_slaves(); };