From 7f75acc05c54bb4a2ffd0c38c7171e27c271bdb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 1 Apr 2021 09:36:37 +0300 Subject: MDEV-25313: Assertion pending==log_requests.start... failed log_flush_notify(): Restore the reload of log_requests.start that was accidentally removed in commit 8c2e3259c13d1d0a494fb3f9c1e5fb780a193ab1. Thanks to Elena Stepanova for a test case (repeatedly running FLUSH LOGS concurrently with InnoDB write transactions). --- storage/innobase/handler/ha_innodb.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 4cd2fe6429b..7c74d4f8340 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -4506,6 +4506,7 @@ void log_flush_notify(lsn_t flush_lsn) if (auto pending= log_requests.start.load(std::memory_order_acquire)) { mysql_mutex_lock(&log_requests.mutex); + pending= log_requests.start.load(std::memory_order_relaxed); log_flush_notify_and_unlock(pending, flush_lsn); } } -- cgit v1.2.1