44#ifndef RPL_DEBUG_POINTS_H
45#define RPL_DEBUG_POINTS_H
129 THD *thd =
nullptr) {
132 assert(opt_debug_sync_timeout > 0);
134 std::string debug_point_string{
""};
139 debug_point_string.assign(
140 "now SIGNAL replica_acquired_backup_lock WAIT_FOR "
141 "tried_to_lock_instance_for_backup");
146 debug_point_string.assign(
"now SIGNAL reached_stopping_io_thread");
151 debug_point_string.assign(
"now SIGNAL reached_stopping_io_thread");
156 debug_point_string.assign(
"now wait_for signal.get_source_uuid");
161 debug_point_string.assign(
162 "now signal Reached wait_for signal.got_stop_replica");
167 debug_point_string.assign(
"now wait_for signal.get_unix_timestamp");
172 debug_point_string.assign(
"now wait_for signal.get_server_id");
177 debug_point_string.assign(
178 "now SIGNAL signal.rpl_before_forced_rotate_reached WAIT_FOR "
179 "signal.rpl_before_forced_rotate_continue");
184 debug_point_string.assign(
185 "now signal signal.reached wait_for signal.done_sbm_calculation");
190 debug_point_string.assign(
191 "now signal signal.reached wait_for signal.done_sbm_calculation");
196 debug_point_string.assign(
197 "now SIGNAL signal.rpl_ps_tables_worker_retry_pause WAIT_FOR "
198 "signal.rpl_ps_tables_worker_retry_continue");
203 debug_point_string.assign(
"now wait_for signal.io_thread_let_running");
208 debug_point_string.assign(
209 "now SIGNAL signal.rpl_ps_tables_queue_before WAIT_FOR "
210 "signal.rpl_ps_tables_queue_finish");
215 debug_point_string.assign(
216 "now SIGNAL signal.rpl_ps_tables_queue_after_finish WAIT_FOR "
217 "signal.rpl_ps_tables_queue_continue");
222 debug_point_string.assign(
223 "now SIGNAL reached_after_queue_event WAIT_FOR "
224 "continue_after_queue_event");
229 debug_point_string.assign(
230 "now signal Reached wait_for signal.flush_complete_continue");
235 debug_point_string.assign(
236 "now SIGNAL reached_stopping_io_thread WAIT_FOR "
237 "continue_to_stop_io_thread");
242 debug_point_string.assign(
"now signal mta_checkpoint_start");
247 debug_point_string.assign(
"now signal mta_checkpoint_end");
252 debug_point_string.assign(
253 "now SIGNAL reached_stopping_sql_thread WAIT_FOR "
254 "continue_to_stop_sql_thread");
259 debug_point_string.assign(
260 "now SIGNAL reached_queuing_event WAIT_FOR continue_queuing_event");
265 debug_point_string.assign(
266 "now SIGNAL check_replica_source_info WAIT_FOR proceed_write_rotate");
271 debug_point_string.assign(
272 "now SIGNAL wait_for_retry_count_exceed WAIT_FOR "
273 "continue_retry_count_exceed");
278 debug_point_string.assign(
"now signal signal.stop_point_after_awake");
283 assert(!debug_point_string.empty());
284 assert(!debug_sync_set_action(thd, debug_point_string.c_str(),
285 debug_point_string.length()));
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
thread_local THD * current_thd
Definition: current_thd.cc:26
enum_rpl_replica_debug_point
Definition: rpl_debug_points.h:51
@ DBUG_RPL_S_SBM_AFTER_FAKE_ROTATE_EV
calculate_sbm_after_fake_rotate_log_event
Definition: rpl_debug_points.h:80
@ DBUG_RPL_S_BEFORE_RUNNING_STATUS
before_get_running_status_yes
Definition: rpl_debug_points.h:86
@ DBUG_RPL_S_PS_TABLE_WORKER_RETRY
rpl_ps_tables_worker_retry
Definition: rpl_debug_points.h:83
@ DBUG_RPL_S_PAUSE_AFTER_IO_STOP
pause_after_io_thread_stop_hook
Definition: rpl_debug_points.h:101
@ DBUG_RPL_S_PAUSE_AFTER_QUEUE_EV
pause_after_queue_event
Definition: rpl_debug_points.h:95
@ DBUG_RPL_S_IO_WAIT_FOR_SPACE
simulate_io_thd_wait_for_disk_space
Definition: rpl_debug_points.h:59
@ DBUG_RPL_S_SIMULATE_BUSY_IO
dbug.simulate_busy_io
Definition: rpl_debug_points.h:65
@ DBUG_RPL_S_FLUSH_AFTER_USERV_EV
flush_after_reading_user_var_event
Definition: rpl_debug_points.h:98
@ DBUG_RPL_S_AFTER_SQL_STOP
pause_after_sql_thread_stop_hook
Definition: rpl_debug_points.h:110
@ DBUG_RPL_S_MTS_CHECKPOINT_START
mta_checkpoint - start
Definition: rpl_debug_points.h:104
@ DBUG_RPL_S_RETRY_COUNT_EXCEED
handle_slave_io
Definition: rpl_debug_points.h:119
@ DBUG_RPL_S_HEARTBEAT_EV
reached_heart_beat_queue_event
Definition: rpl_debug_points.h:116
@ DBUG_RPL_S_PAUSE_QUEUING
pause_on_queuing_event
Definition: rpl_debug_points.h:113
@ DBUG_RPL_S_BEFORE_FORCED_ROTATE
rpl_before_forced_rotate
Definition: rpl_debug_points.h:74
@ DBUG_RPL_S_PS_TABLE_QUEUE
rpl_ps_tables_queue
Definition: rpl_debug_points.h:89
@ DBUG_RPL_S_STOP_SLAVE_BACKUP_LOCK
stop_replica_dont_release_backup_lock
Definition: rpl_debug_points.h:53
@ DBUG_RPL_S_MTS_CHECKPOINT_END
mta_checkpoint - end
Definition: rpl_debug_points.h:107
@ DBUG_RPL_S_PAUSE_QUEUE_EV
pause_after_queue_event
Definition: rpl_debug_points.h:56
@ DBUG_RPL_S_PS_TABLES
rpl_ps_tables
Definition: rpl_debug_points.h:92
@ DBUG_RPL_S_BEFORE_MASTER_UUID
dbug.before_get_SOURCE_UUID
Definition: rpl_debug_points.h:62
@ DBUG_RPL_S_BEFORE_UNIX_TIMESTAMP
dbug.before_get_UNIX_TIMESTAMP
Definition: rpl_debug_points.h:68
@ DBUG_RPL_S_BEFORE_SERVER_ID
dbug.before_get_SERVER_ID
Definition: rpl_debug_points.h:71
@ DBUG_RPL_S_SBM_AFTER_PREVIOUS_GTID_EV
calculate_sbm_after_previous_gtid_log_event
Definition: rpl_debug_points.h:77
@ DBUG_RPL_R_WAIT_AFTER_AWAKE_ON_THREAD_STOP
Pause on a replica thread stop after aweking the THD.
Definition: rpl_debug_points.h:122
void rpl_replica_debug_point(enum_rpl_replica_debug_point point_id, THD *thd=nullptr)
Method used to decrease code pollution in slave methods.
Definition: rpl_debug_points.h:128