Commit 972b4564 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

fixup 63b9d6e7 , log_sys.write_buf can't run in a loop

The write_lock is released after the first time already.

This leaves the hole in the log_write_and_flush logic, some
flush_lock/write_lock waiters could be hanging, until the
background redo log flush comes.

The possibility of that is relatively tiny though.
parent 63b9d6e7
...@@ -705,12 +705,8 @@ ATTRIBUTE_COLD void log_write_and_flush() ...@@ -705,12 +705,8 @@ ATTRIBUTE_COLD void log_write_and_flush()
ut_ad(!srv_read_only_mode); ut_ad(!srv_read_only_mode);
if (!log_sys.is_pmem()) if (!log_sys.is_pmem())
{ {
while (log_sys.write_buf<false>()) log_sys.write_buf<false>();
{ log_flush(write_lock.value());
}
while (log_flush(write_lock.value()))
{
}
} }
#ifdef HAVE_PMEM #ifdef HAVE_PMEM
else else
......
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