Disable parameters on main worker
Disabling the parameter on the main worker prevents deadlocks if the parameter is disabled at the same time a monitor diagnostic is executed.
This commit is contained in:
parent
0d934476b0
commit
d22b02047f
@ -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<char*>(setting);
|
||||
p.value = const_cast<char*>("false");
|
||||
monitor_add_parameters(m_monitor, &p);
|
||||
Worker* worker = static_cast<Worker*>(mxs_rworker_get(MXS_RWORKER_MAIN));
|
||||
|
||||
worker->post([=]()
|
||||
{
|
||||
MXS_CONFIG_PARAMETER p = {};
|
||||
p.name = const_cast<char*>(setting.c_str());
|
||||
p.value = const_cast<char*>("false");
|
||||
monitor_add_parameters(m_monitor, &p);
|
||||
}, NULL, EXECUTE_AUTO);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user