Commit 92ff7bb6 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-30227 [ERROR] [FATAL] InnoDB: fdatasync() returned 9

fil_space_t::flush<false>(): If the CLOSING flag is set,
the file may already have been closed, resulting in EBADF
being returned by fdatasync(). In any case, the
thread that had set the flag should take care of invoking
os_file_flush_func().

The crash occurred during the execution of FLUSH TABLES...FOR EXPORT.

Tested by: Matthias Leich
parent 03fee585
......@@ -1469,9 +1469,10 @@ template<bool have_reference> inline void fil_space_t::flush()
}
else if (have_reference)
flush_low();
else if (!(acquire_low() & STOPPING))
else
{
flush_low();
if (!(acquire_low() & (STOPPING | CLOSING)))
flush_low();
release();
}
}
......
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