summaryrefslogtreecommitdiff
path: root/storage/innobase/srv/srv0srv.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/srv/srv0srv.cc')
-rw-r--r--storage/innobase/srv/srv0srv.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index 3d1415b07c6..528384eaa3f 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -2168,6 +2168,16 @@ srv_master_do_active_tasks(void)
MONITOR_SRV_DICT_LRU_MICROSECOND, counter_time);
}
+ /* The periodic log_checkpoint() call here makes it harder to
+ reproduce bugs in crash recovery or mariabackup --prepare, or
+ in code that writes the redo log records. Omitting the call
+ here should not affect correctness, because log_free_check()
+ should still be invoking checkpoints when needed. In a
+ production server, those calls could cause "furious flushing"
+ and stall the server. Normally we want to perform checkpoints
+ early and often to avoid those situations. */
+ DBUG_EXECUTE_IF("ib_log_checkpoint_avoid", return;);
+
if (srv_shutdown_state != SRV_SHUTDOWN_NONE) {
return;
}
@@ -2247,6 +2257,16 @@ srv_master_do_idle_tasks(void)
MONITOR_INC_TIME_IN_MICRO_SECS(
MONITOR_SRV_LOG_FLUSH_MICROSECOND, counter_time);
+ /* The periodic log_checkpoint() call here makes it harder to
+ reproduce bugs in crash recovery or mariabackup --prepare, or
+ in code that writes the redo log records. Omitting the call
+ here should not affect correctness, because log_free_check()
+ should still be invoking checkpoints when needed. In a
+ production server, those calls could cause "furious flushing"
+ and stall the server. Normally we want to perform checkpoints
+ early and often to avoid those situations. */
+ DBUG_EXECUTE_IF("ib_log_checkpoint_avoid", return;);
+
if (srv_shutdown_state != SRV_SHUTDOWN_NONE) {
return;
}