Commit 7f75acc0 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-25313: Assertion pending==log_requests.start... failed

log_flush_notify(): Restore the reload of log_requests.start that was
accidentally removed in commit 8c2e3259.

Thanks to Elena Stepanova for a test case (repeatedly running FLUSH LOGS
concurrently with InnoDB write transactions).
parent 147a317e
...@@ -4506,6 +4506,7 @@ void log_flush_notify(lsn_t flush_lsn) ...@@ -4506,6 +4506,7 @@ void log_flush_notify(lsn_t flush_lsn)
if (auto pending= log_requests.start.load(std::memory_order_acquire)) if (auto pending= log_requests.start.load(std::memory_order_acquire))
{ {
mysql_mutex_lock(&log_requests.mutex); mysql_mutex_lock(&log_requests.mutex);
pending= log_requests.start.load(std::memory_order_relaxed);
log_flush_notify_and_unlock(pending, flush_lsn); log_flush_notify_and_unlock(pending, flush_lsn);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment