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 */
|
/** Mark the rest session commands as replied */
|
||||||
scmd->my_sescmd_is_replied = true;
|
scmd->my_sescmd_is_replied = true;
|
||||||
scmd->reply_cmd = *((unsigned char*)replybuf->start + 4);
|
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);
|
bref->bref_backend->backend_server->unique_name);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -3845,6 +3845,11 @@ static GWBUF* sescmd_cursor_process_replies(
|
|||||||
if(ses->rses_backend_ref[i].bref_dcb)
|
if(ses->rses_backend_ref[i].bref_dcb)
|
||||||
dcb_close(ses->rses_backend_ref[i].bref_dcb);
|
dcb_close(ses->rses_backend_ref[i].bref_dcb);
|
||||||
*reconnect = true;
|
*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
|
else
|
||||||
{
|
{
|
||||||
skygw_log_write(LOGFILE_DEBUG,"Slave '%s' responded faster to a session command.",
|
skygw_log_write(LT,"Slave '%s' responded before master to a session command. Result: %d",
|
||||||
bref->bref_backend->backend_server->unique_name);
|
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)
|
if(replybuf)
|
||||||
while((replybuf = gwbuf_consume(replybuf,gwbuf_length(replybuf))));
|
while((replybuf = gwbuf_consume(replybuf,gwbuf_length(replybuf))));
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user