Commit a6cc2de9 authored by unknown's avatar unknown
Browse files

Bug #19938 Valgrind error (race) in handle_slave_sql()


sql/slave.cc:
  Read rli->events_till_abort to a temporary variable before unlocking the mutex
parent a2fb5dc5
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -3949,10 +3949,17 @@ the slave SQL thread with \"SLAVE START\". We stopped at log \
  delete thd;
  pthread_mutex_unlock(&LOCK_thread_count);
  pthread_cond_broadcast(&rli->stop_cond);

  /*
    Bug #19938 Valgrind error (race) in handle_slave_sql()
    Read the value of rli->event_till_abort before releasing the mutex
  */
  const int eta= rli->events_till_abort;

  // tell the world we are done
  pthread_mutex_unlock(&rli->run_lock);
#ifndef DBUG_OFF // TODO: reconsider the code below
  if (abort_slave_event_count && !rli->events_till_abort)
  if (abort_slave_event_count && !eta)
    goto slave_begin;
#endif  
  my_thread_end();