Fixed session commands being executed multiple times.
This commit is contained in:
@ -3825,7 +3825,7 @@ static GWBUF* sescmd_cursor_process_replies(
|
||||
/** Mark the rest session commands as replied */
|
||||
scmd->my_sescmd_is_replied = true;
|
||||
scmd->reply_cmd = *((unsigned char*)replybuf->start + 4);
|
||||
skygw_log_write(LOGFILE_DEBUG,"Master '%s' responded to a session command.",
|
||||
skygw_log_write(LT,"Master '%s' responded to a session command.",
|
||||
bref->bref_backend->backend_server->unique_name);
|
||||
int i;
|
||||
|
||||
@ -3845,6 +3845,11 @@ static GWBUF* sescmd_cursor_process_replies(
|
||||
if(ses->rses_backend_ref[i].bref_dcb)
|
||||
dcb_close(ses->rses_backend_ref[i].bref_dcb);
|
||||
*reconnect = true;
|
||||
skygw_log_write(LT,"Disabling slave %s:%d, result differs from master's result. Master: %d Slave: %d",
|
||||
ses->rses_backend_ref[i].bref_backend->backend_server->name,
|
||||
ses->rses_backend_ref[i].bref_backend->backend_server->port,
|
||||
bref->reply_cmd,
|
||||
ses->rses_backend_ref[i].reply_cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3852,11 +3857,17 @@ static GWBUF* sescmd_cursor_process_replies(
|
||||
}
|
||||
else
|
||||
{
|
||||
skygw_log_write(LOGFILE_DEBUG,"Slave '%s' responded faster to a session command.",
|
||||
bref->bref_backend->backend_server->unique_name);
|
||||
skygw_log_write(LT,"Slave '%s' responded before master to a session command. Result: %d",
|
||||
bref->bref_backend->backend_server->unique_name,
|
||||
(int)bref->reply_cmd);
|
||||
if(bref->reply_cmd == 0xff)
|
||||
{
|
||||
SERVER* serv = bref->bref_backend->backend_server;
|
||||
skygw_log_write(LE,"Error: Slave '%s' (%s:%u) failed to execute session command.",
|
||||
serv->unique_name,serv->name,serv->port);
|
||||
}
|
||||
if(replybuf)
|
||||
while((replybuf = gwbuf_consume(replybuf,gwbuf_length(replybuf))));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user