Merge branch '2.3' into develop

This commit is contained in:
Johan Wikman
2019-05-09 14:35:44 +03:00
3 changed files with 38 additions and 32 deletions

View File

@ -242,7 +242,7 @@ static int blr_slave_send_columndef_with_status_schema(ROUTER_INSTANCE* router,
int len,
uint8_t seqno);
static bool blr_send_slave_heartbeat(void* inst);
static int blr_slave_send_heartbeat(ROUTER_INSTANCE* router,
static void blr_slave_send_heartbeat(ROUTER_INSTANCE* router,
ROUTER_SLAVE* slave);
static int blr_set_master_ssl(ROUTER_INSTANCE* router,
const ChangeMasterConfig& config,
@ -6205,13 +6205,11 @@ static bool blr_send_slave_heartbeat(void* inst)
sptr->heartbeat,
(unsigned long)sptr->lastReply);
if (blr_slave_send_heartbeat(router, sptr))
{
/* Set last event */
sptr->lastEventReceived = HEARTBEAT_EVENT;
/* Set last time */
sptr->lastReply = t_now;
}
blr_slave_send_heartbeat(router, sptr);
/* Set last event */
sptr->lastEventReceived = HEARTBEAT_EVENT;
/* Set last time */
sptr->lastReply = t_now;
}
sptr = sptr->next;
@ -6229,7 +6227,7 @@ static bool blr_send_slave_heartbeat(void* inst)
* @param slave The current slave connection
* @return Number of bytes sent or 0 in case of failure
*/
static int blr_slave_send_heartbeat(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave)
static void send_heartbeat(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave)
{
REP_HEADER hdr;
GWBUF* h_event;
@ -6256,10 +6254,7 @@ static int blr_slave_send_heartbeat(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave
*
* Total = 5 bytes + len
*/
if ((h_event = gwbuf_alloc(MYSQL_HEADER_LEN + 1 + len)) == NULL)
{
return 0;
}
h_event = gwbuf_alloc(MYSQL_HEADER_LEN + 1 + len);
/* The OK/Err byte is part of payload */
hdr.payload_len = len + 1;
@ -6307,11 +6302,18 @@ static int blr_slave_send_heartbeat(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave
}
/* Write the packet */
mxs::RoutingWorker* worker = (mxs::RoutingWorker*)slave->dcb->owner;
mxs::RoutingWorker* worker = static_cast<mxs::RoutingWorker*>(slave->dcb->owner);
worker->execute([slave, h_event]() {
MXS_SESSION_ROUTE_REPLY(slave->dcb->session, h_event);
}, mxs::RoutingWorker::EXECUTE_AUTO);
return 1;
}
static void blr_slave_send_heartbeat(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave)
{
mxs::RoutingWorker* worker = static_cast<mxs::RoutingWorker*>(slave->dcb->owner);
worker->execute([router, slave]() {
send_heartbeat(router, slave);
}, mxs::RoutingWorker::EXECUTE_AUTO);
}
/**