Commit 83a326f2 authored by unknown's avatar unknown
Browse files

BUG#18116: Changed of how mutex is handled for XA and rotating binlog


sql/log.cc:
  thread_safe_increment is done as an atomic operation on some platforms
  and that does not respect the lock
parent e40b76c9
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1882,7 +1882,11 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, Log_event *commit_event)
      rotate binlog, if necessary.
    */
    if (commit_event->get_type_code() == XID_EVENT)
      thread_safe_increment(prepared_xids, &LOCK_prep_xids);
    {
      pthread_mutex_lock(&LOCK_prep_xids);
      prepared_xids++;
      pthread_mutex_unlock(&LOCK_prep_xids);
    }
    else
      rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED);
  }