Binlog server: handle filestem in blr_handle_missing_files()
Routine blr_handle_missing_files() is called by blr_handle_fake_rotate(). Field ‘filestem’ is updated in order to avoid wrong file name creation. Additionally router is not creating any missing filenames if router->binlog_name is empty (no previous binlog files)
This commit is contained in:
@ -1098,6 +1098,8 @@ createInstance(SERVICE *service, char **options)
|
|||||||
|
|
||||||
/* Force STOPPED state */
|
/* Force STOPPED state */
|
||||||
inst->master_state = BLRM_SLAVE_STOPPED;
|
inst->master_state = BLRM_SLAVE_STOPPED;
|
||||||
|
/* Set current binlog file to empy value */
|
||||||
|
*inst->binlog_name = 0;
|
||||||
/* Set mysql_errno and error message */
|
/* Set mysql_errno and error message */
|
||||||
inst->m_errno = BINLOG_FATAL_ERROR_READING;
|
inst->m_errno = BINLOG_FATAL_ERROR_READING;
|
||||||
inst->m_errmsg = MXS_STRDUP_A("HY000 Cannot find any GTID"
|
inst->m_errmsg = MXS_STRDUP_A("HY000 Cannot find any GTID"
|
||||||
|
|||||||
@ -3370,7 +3370,26 @@ static bool blr_handle_missing_files(ROUTER_INSTANCE *router,
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (router->fileroot)
|
||||||
|
{
|
||||||
|
MXS_FREE(router->fileroot);
|
||||||
|
}
|
||||||
|
/* set filestem */
|
||||||
|
router->fileroot = MXS_STRNDUP_A(new_file, fptr - new_file);
|
||||||
|
|
||||||
new_fseqno = atol(fptr + 1);
|
new_fseqno = atol(fptr + 1);
|
||||||
|
|
||||||
|
if (!*router->binlog_name)
|
||||||
|
{
|
||||||
|
MXS_INFO("Fake ROTATE_EVENT comes with %s log file."
|
||||||
|
" Current router binlog file has not been set yet."
|
||||||
|
" Skipping creation of empty files"
|
||||||
|
" before sequence %" PRIu32 "",
|
||||||
|
new_file,
|
||||||
|
new_fseqno);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (*router->binlog_name &&
|
if (*router->binlog_name &&
|
||||||
(fptr = strrchr(router->binlog_name, '.')) == NULL)
|
(fptr = strrchr(router->binlog_name, '.')) == NULL)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user