summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
authorSujatha <sujatha.sivakumar@mariadb.com>2020-11-12 14:10:05 +0530
committerSujatha <sujatha.sivakumar@mariadb.com>2020-11-12 14:10:05 +0530
commitbafb011a82c0a6437515c37e37aef433d043f592 (patch)
treef92b3549ab24142a55f0c48a07326b6da290502b /sql/slave.cc
parent150f447af1d9ffff168372505e5c9b4297bdd9d4 (diff)
parent984a06db2ce2b2e3c7c5028245905417f2141cd7 (diff)
downloadmariadb-git-bafb011a82c0a6437515c37e37aef433d043f592.tar.gz
Merge branch '10.2' into 10.3
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc19
1 files changed, 15 insertions, 4 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index 44fb1d0804e..28e08e32346 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -2687,7 +2687,10 @@ static bool wait_for_relay_log_space(Relay_log_info* rli)
&rli->log_space_lock,
&stage_waiting_for_relay_log_space,
&old_stage);
- while (rli->log_space_limit < rli->log_space_total &&
+ while (rli->log_space_limit <
+ (ulonglong)my_atomic_load64_explicit((volatile int64*)
+ (&rli->log_space_total),
+ MY_MEMORY_ORDER_RELAXED) &&
!(slave_killed=io_slave_killed(mi)) &&
!rli->ignore_log_space_limit)
mysql_cond_wait(&rli->log_space_cond, &rli->log_space_lock);
@@ -3250,7 +3253,10 @@ static bool send_show_master_info_data(THD *thd, Master_info *mi, bool full,
protocol->store(mi->rli.last_error().message, &my_charset_bin);
protocol->store((uint32) mi->rli.slave_skip_counter);
protocol->store((ulonglong) mi->rli.group_master_log_pos);
- protocol->store((ulonglong) mi->rli.log_space_total);
+ protocol->store((ulonglong)
+ my_atomic_load64_explicit((volatile int64*)
+ (&mi->rli.log_space_total),
+ MY_MEMORY_ORDER_RELAXED));
protocol->store(
mi->rli.until_condition==Relay_log_info::UNTIL_NONE ? "None":
@@ -4983,7 +4989,9 @@ Stopping slave I/O thread due to out-of-memory error from master");
#endif
if (rli->log_space_limit && rli->log_space_limit <
- rli->log_space_total &&
+ (ulonglong) my_atomic_load64_explicit((volatile int64*)
+ (&rli->log_space_total),
+ MY_MEMORY_ORDER_RELAXED) &&
!rli->ignore_log_space_limit)
if (wait_for_relay_log_space(rli))
{
@@ -7678,7 +7686,10 @@ static Log_event* next_event(rpl_group_info *rgi, ulonglong *event_size)
is are able to rotate and purge sometime soon.
*/
if (rli->log_space_limit &&
- rli->log_space_limit < rli->log_space_total)
+ rli->log_space_limit <
+ (ulonglong) my_atomic_load64_explicit((volatile int64*)
+ (&rli->log_space_total),
+ MY_MEMORY_ORDER_RELAXED))
{
/* force rotation if not in an unfinished group */
rli->sql_force_rotate_relay= !rli->is_in_group();