mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge 10.5 to 10.6
This commit is contained in:
@ -4387,6 +4387,7 @@ bool show_binlogs(THD* thd)
|
||||
Protocol *protocol= thd->protocol;
|
||||
uint retry_count= 0;
|
||||
size_t cur_dir_len;
|
||||
uint64 expected_reset_masters;
|
||||
DBUG_ENTER("show_binlogs");
|
||||
|
||||
if (!mysql_bin_log.is_open())
|
||||
@ -4411,6 +4412,7 @@ retry:
|
||||
mysql_mutex_lock(mysql_bin_log.get_log_lock());
|
||||
mysql_bin_log.lock_index();
|
||||
mysql_bin_log.raw_get_current_log(&cur);
|
||||
expected_reset_masters= mysql_bin_log.get_reset_master_count();
|
||||
mysql_mutex_unlock(mysql_bin_log.get_log_lock());
|
||||
|
||||
/* The following call unlocks lock_index */
|
||||
@ -4431,6 +4433,16 @@ retry:
|
||||
cur_link->name.str+= dir_len;
|
||||
cur_link->name.length-= dir_len;
|
||||
|
||||
if (mysql_bin_log.get_reset_master_count() > expected_reset_masters)
|
||||
{
|
||||
/*
|
||||
Reset master was called after we cached filenames.
|
||||
Reinitialize the cache.
|
||||
*/
|
||||
free_root(&mem_root, MYF(MY_MARK_BLOCKS_FREE));
|
||||
goto retry;
|
||||
}
|
||||
|
||||
if (!(strncmp(fname+dir_len, cur.log_file_name+cur_dir_len, length)))
|
||||
cur_link->size= cur.pos; /* The active log, use the active position */
|
||||
else
|
||||
|
Reference in New Issue
Block a user