Added error handling in BINLOG_DUMP phase
Added error handling in BINLOG_DUMP phase: router goes into BLRM_SLAVE_STOPPED state Removed blr_file_add_magic called twice
This commit is contained in:
@ -37,6 +37,7 @@
|
||||
#include <pthread.h>
|
||||
|
||||
#include <memlog.h>
|
||||
#include <zlib.h>
|
||||
|
||||
#define BINLOG_FNAMELEN 16
|
||||
#define BLR_PROTOCOL "MySQLBackend"
|
||||
|
@ -218,9 +218,8 @@ int fd;
|
||||
close(router->binlog_fd);
|
||||
spinlock_acquire(&router->binlog_lock);
|
||||
strncpy(router->binlog_name, file,BINLOG_FNAMELEN);
|
||||
blr_file_add_magic(router, fd);
|
||||
spinlock_release(&router->binlog_lock);
|
||||
router->binlog_fd = fd;
|
||||
spinlock_release(&router->binlog_lock);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -263,11 +262,12 @@ int fd;
|
||||
"%s: binlog file %s has an invalid length %d.",
|
||||
router->service->name, path, router->binlog_position)));
|
||||
close(fd);
|
||||
spinlock_release(&router->binlog_lock);
|
||||
return;
|
||||
}
|
||||
}
|
||||
spinlock_release(&router->binlog_lock);
|
||||
router->binlog_fd = fd;
|
||||
spinlock_release(&router->binlog_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -246,6 +246,9 @@ blr_master_reconnect(ROUTER_INSTANCE *router)
|
||||
{
|
||||
int do_reconnect = 0;
|
||||
|
||||
if (router->master_state == BLRM_SLAVE_STOPPED)
|
||||
return;
|
||||
|
||||
spinlock_acquire(&router->lock);
|
||||
if (router->active_logs)
|
||||
{
|
||||
@ -914,7 +917,8 @@ static REP_HEADER phdr;
|
||||
|
||||
blr_extract_header(ptr, &hdr);
|
||||
|
||||
if (hdr.event_size != len - 5) /* Sanity check */
|
||||
/* Sanity check */
|
||||
if (hdr.ok == 0 && hdr.event_size != len - 5)
|
||||
{
|
||||
LOGIF(LE,(skygw_log_write(
|
||||
LOGFILE_ERROR,
|
||||
@ -1146,6 +1150,9 @@ static REP_HEADER phdr;
|
||||
free(router->m_errmsg);
|
||||
router->m_errmsg = msg_err;
|
||||
|
||||
/* Force stopped state */
|
||||
router->master_state = BLRM_SLAVE_STOPPED;
|
||||
|
||||
spinlock_release(&router->lock);
|
||||
|
||||
LOGIF(LE,(skygw_log_write(LOGFILE_ERROR,
|
||||
|
Reference in New Issue
Block a user