diff options
Diffstat (limited to 'sql/sql_repl.cc')
-rw-r--r-- | sql/sql_repl.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 7bcff12a735..90fdce1b56f 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -3959,6 +3959,16 @@ err: mi->unlock_slave_threads(); if (ret == FALSE) my_ok(thd); + else + { + /* + Depending on where CHANGE MASTER failed, the logs may be waiting to be + reopened. This would break future log updates and CHANGE MASTER calls. + `try_fix_log_state()` allows the relay log to fix its state to no longer + expect to be reopened. + */ + mi->rli.relay_log.try_fix_log_state(); + } DBUG_RETURN(ret); } |