Fix binlogrouter slave heartbeat task addition
The task was added multiple times when only one task is needed.
This commit is contained in:
@ -354,6 +354,7 @@ static MXS_ROUTER* createInstance(SERVICE* service, MXS_CONFIG_PARAMETER* params
|
|||||||
inst->trx_safe = params->get_bool("transaction_safety");
|
inst->trx_safe = params->get_bool("transaction_safety");
|
||||||
inst->fileroot = params->get_c_str_copy("filestem");
|
inst->fileroot = params->get_c_str_copy("filestem");
|
||||||
inst->heartbeat_task_active = false;
|
inst->heartbeat_task_active = false;
|
||||||
|
inst->slave_heartbeat_task_active = false;
|
||||||
|
|
||||||
/* Server id */
|
/* Server id */
|
||||||
inst->serverid = params->get_integer("server_id");
|
inst->serverid = params->get_integer("server_id");
|
||||||
|
@ -800,6 +800,7 @@ struct ROUTER_INSTANCE : public MXS_ROUTER
|
|||||||
unsigned long burst_size; /*< Maximum size of burst to send */
|
unsigned long burst_size; /*< Maximum size of burst to send */
|
||||||
unsigned long heartbeat; /*< Configured heartbeat value */
|
unsigned long heartbeat; /*< Configured heartbeat value */
|
||||||
bool heartbeat_task_active;
|
bool heartbeat_task_active;
|
||||||
|
bool slave_heartbeat_task_active;
|
||||||
ROUTER_STATS stats; /*< Statistics for this router */
|
ROUTER_STATS stats; /*< Statistics for this router */
|
||||||
int active_logs;
|
int active_logs;
|
||||||
int reconnect_pending;
|
int reconnect_pending;
|
||||||
|
@ -425,8 +425,10 @@ int blr_slave_request(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave, GWBUF* queue
|
|||||||
/* Check whether to add the heartbeat check for this slave */
|
/* Check whether to add the heartbeat check for this slave */
|
||||||
if (rv && slave->state == BLRS_DUMPING
|
if (rv && slave->state == BLRS_DUMPING
|
||||||
&& router->send_slave_heartbeat
|
&& router->send_slave_heartbeat
|
||||||
&& slave->heartbeat > 0)
|
&& slave->heartbeat > 0
|
||||||
|
&& !router->slave_heartbeat_task_active)
|
||||||
{
|
{
|
||||||
|
router->slave_heartbeat_task_active = true;
|
||||||
char task_name[BLRM_TASK_NAME_LEN + 1] = "";
|
char task_name[BLRM_TASK_NAME_LEN + 1] = "";
|
||||||
snprintf(task_name,
|
snprintf(task_name,
|
||||||
BLRM_TASK_NAME_LEN,
|
BLRM_TASK_NAME_LEN,
|
||||||
|
Reference in New Issue
Block a user