mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-8134: The relay-log is not flushed after the slave-relay-log.999999 showed
Problem: ======== Auto purge of relaylogs stops when relay-log-file is 'slave-relay-log.999999' and slave_parallel_threads is enabled. Analysis: ========= The problem is that in Relay_log_info::inc_group_relay_log_pos() function, when two log names are compared via strcmp() function, it gives correct result, when log name sequence numbers are of same digits(6 digits), But when the number goes to 7 digits, a 999999 compares greater than 1000000, which is wrong, hence the bug. Fix: ==== Extract the numeric extension part of the file name, convert it into unsigned long and compare. Thanks to David Zhao for the contribution.
This commit is contained in:
@ -56,6 +56,7 @@ bool show_binlogs(THD* thd);
|
||||
extern int init_master_info(Master_info* mi);
|
||||
void kill_zombie_dump_threads(uint32 slave_server_id);
|
||||
int check_binlog_magic(IO_CACHE* log, const char** errmsg);
|
||||
int compare_log_name(const char *log_1, const char *log_2);
|
||||
|
||||
struct LOAD_FILE_IO_CACHE : public IO_CACHE
|
||||
{
|
||||
|
Reference in New Issue
Block a user