Browse Source

MDEV-26626 InnoDB fails to advance the log checkpoint

buf_flush_page_cleaner(): Always try to advance the log checkpoint,
even when no pages were flushed during the latest batch.
Maybe, since the previous batch, there was an LRU flush that
removed the last dirty pages.

Failure to advance the log checkpoint will cause unnecessary work
in Mariabackup and on crash recovery.
abychko-10.5-MDEV-26265
Marko Mäkelä 4 years ago
parent
commit
c430aa72ab
  1. 9
      storage/innobase/buf/buf0flu.cc

9
storage/innobase/buf/buf0flu.cc

@ -2266,6 +2266,15 @@ furious_flush:
unemployed:
buf_flush_async_lsn= 0;
buf_pool.page_cleaner_set_idle(true);
DBUG_EXECUTE_IF("ib_log_checkpoint_avoid", continue;);
mysql_mutex_unlock(&buf_pool.flush_list_mutex);
if (!recv_recovery_is_on() && srv_operation == SRV_OPERATION_NORMAL)
log_checkpoint();
mysql_mutex_lock(&buf_pool.flush_list_mutex);
continue;
}

Loading…
Cancel
Save