On Wed, Jun 29, 2016 at 9:31 AM, Kristian Nielsen <knielsen@knielsen-hq.org> wrote:
Nirbhay Choubey <nirbhay@mariadb.com> writes:
Since there is no wait in reload_acl_and_cache() anymore, user's FLUSH LOGS will create a new binary log file with binlog checkpoint event for the penultimate binlog and return, leaving it onto binlog background thread to take care of logging the checkpoint event for the current (new) binlog file.
Now, if background thread kicks in _after_ the file transfer (as shown in #9 below), the same problem occurs - the joiner complains of the missing binlog file.
Sure, I understand, what I fail to understand is how putting wait_for_last_checkpoint_event() into the user's connection thread helps avoid this. The user thread waits for the checkpoint event of the new binlog file, however the SST thread already did its wait for its own reload_acl_and_cache(), it will not wait again... ?
Ah.. I get it now, adding the wait in reload_acl_and_cache() is futile. So, perhaps only option left is place this wait in sst_flush_tables() after reload_acl_and_cache(). - Nirbhay
- Kristian.