Remove file from slave
The binlog file is now always opened when it is needed and closed when we are finished with it. That will remove any potential file concurrency issues between different threads dealing with the same slave.
This commit is contained in:
committed by
Markus Makela
parent
71212a824b
commit
04f807290a
@ -756,7 +756,9 @@ ROUTER_SLAVE *slave;
|
||||
spinlock_init(&slave->catch_lock);
|
||||
slave->dcb = session->client;
|
||||
slave->router = inst;
|
||||
#ifdef BLFILE_IN_SLAVE
|
||||
slave->file = NULL;
|
||||
#endif
|
||||
strcpy(slave->binlogfile, "unassigned");
|
||||
slave->connect_time = time(0);
|
||||
slave->lastEventTimestamp = 0;
|
||||
@ -901,8 +903,12 @@ ROUTER_SLAVE *slave = (ROUTER_SLAVE *)router_session;
|
||||
*/
|
||||
slave->state = BLRS_UNREGISTERED;
|
||||
|
||||
#if BLFILE_IN_SLAVE
|
||||
// TODO: Is it really certain the file can be closed here? If other
|
||||
// TODO: threads are using the slave instance, bag things will happen. [JWi].
|
||||
if (slave->file)
|
||||
blr_close_binlog(router, slave->file);
|
||||
#endif
|
||||
|
||||
/* Unlock */
|
||||
rses_end_locked_router_action(slave);
|
||||
|
||||
Reference in New Issue
Block a user