43#ifndef RPL_DEBUG_POINTS_H
44#define RPL_DEBUG_POINTS_H
128 THD *thd =
nullptr) {
131 assert(opt_debug_sync_timeout > 0);
133 std::string debug_point_string{
""};
138 debug_point_string.assign(
139 "now SIGNAL replica_acquired_backup_lock WAIT_FOR "
140 "tried_to_lock_instance_for_backup");
145 debug_point_string.assign(
"now SIGNAL reached_stopping_io_thread");
150 debug_point_string.assign(
"now SIGNAL reached_stopping_io_thread");
155 debug_point_string.assign(
"now wait_for signal.get_source_uuid");
160 debug_point_string.assign(
161 "now signal Reached wait_for signal.got_stop_replica");
166 debug_point_string.assign(
"now wait_for signal.get_unix_timestamp");
171 debug_point_string.assign(
"now wait_for signal.get_server_id");
176 debug_point_string.assign(
177 "now SIGNAL signal.rpl_before_forced_rotate_reached WAIT_FOR "
178 "signal.rpl_before_forced_rotate_continue");
183 debug_point_string.assign(
184 "now signal signal.reached wait_for signal.done_sbm_calculation");
189 debug_point_string.assign(
190 "now signal signal.reached wait_for signal.done_sbm_calculation");
195 debug_point_string.assign(
196 "now SIGNAL signal.rpl_ps_tables_worker_retry_pause WAIT_FOR "
197 "signal.rpl_ps_tables_worker_retry_continue");
202 debug_point_string.assign(
"now wait_for signal.io_thread_let_running");
207 debug_point_string.assign(
208 "now SIGNAL signal.rpl_ps_tables_queue_before WAIT_FOR "
209 "signal.rpl_ps_tables_queue_finish");
214 debug_point_string.assign(
215 "now SIGNAL signal.rpl_ps_tables_queue_after_finish WAIT_FOR "
216 "signal.rpl_ps_tables_queue_continue");
221 debug_point_string.assign(
222 "now SIGNAL reached_after_queue_event WAIT_FOR "
223 "continue_after_queue_event");
228 debug_point_string.assign(
229 "now signal Reached wait_for signal.flush_complete_continue");
234 debug_point_string.assign(
235 "now SIGNAL reached_stopping_io_thread WAIT_FOR "
236 "continue_to_stop_io_thread");
241 debug_point_string.assign(
"now signal mta_checkpoint_start");
246 debug_point_string.assign(
"now signal mta_checkpoint_end");
251 debug_point_string.assign(
252 "now SIGNAL reached_stopping_sql_thread WAIT_FOR "
253 "continue_to_stop_sql_thread");
258 debug_point_string.assign(
259 "now SIGNAL reached_queuing_event WAIT_FOR continue_queuing_event");
264 debug_point_string.assign(
265 "now SIGNAL check_replica_source_info WAIT_FOR proceed_write_rotate");
270 debug_point_string.assign(
271 "now SIGNAL wait_for_retry_count_exceed WAIT_FOR "
272 "continue_retry_count_exceed");
277 debug_point_string.assign(
"now signal signal.stop_point_after_awake");
282 assert(!debug_point_string.empty());
283 assert(!debug_sync_set_action(thd, debug_point_string.c_str(),
284 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:33
thread_local THD * current_thd
Definition: current_thd.cc:25
enum_rpl_replica_debug_point
Definition: rpl_debug_points.h:50
@ DBUG_RPL_S_SBM_AFTER_FAKE_ROTATE_EV
calculate_sbm_after_fake_rotate_log_event
Definition: rpl_debug_points.h:79
@ DBUG_RPL_S_BEFORE_RUNNING_STATUS
before_get_running_status_yes
Definition: rpl_debug_points.h:85
@ DBUG_RPL_S_PS_TABLE_WORKER_RETRY
rpl_ps_tables_worker_retry
Definition: rpl_debug_points.h:82
@ DBUG_RPL_S_PAUSE_AFTER_IO_STOP
pause_after_io_thread_stop_hook
Definition: rpl_debug_points.h:100
@ DBUG_RPL_S_PAUSE_AFTER_QUEUE_EV
pause_after_queue_event
Definition: rpl_debug_points.h:94
@ DBUG_RPL_S_IO_WAIT_FOR_SPACE
simulate_io_thd_wait_for_disk_space
Definition: rpl_debug_points.h:58
@ DBUG_RPL_S_SIMULATE_BUSY_IO
dbug.simulate_busy_io
Definition: rpl_debug_points.h:64
@ DBUG_RPL_S_FLUSH_AFTER_USERV_EV
flush_after_reading_user_var_event
Definition: rpl_debug_points.h:97
@ DBUG_RPL_S_AFTER_SQL_STOP
pause_after_sql_thread_stop_hook
Definition: rpl_debug_points.h:109
@ DBUG_RPL_S_MTS_CHECKPOINT_START
mta_checkpoint - start
Definition: rpl_debug_points.h:103
@ DBUG_RPL_S_RETRY_COUNT_EXCEED
handle_slave_io
Definition: rpl_debug_points.h:118
@ DBUG_RPL_S_HEARTBEAT_EV
reached_heart_beat_queue_event
Definition: rpl_debug_points.h:115
@ DBUG_RPL_S_PAUSE_QUEUING
pause_on_queuing_event
Definition: rpl_debug_points.h:112
@ DBUG_RPL_S_BEFORE_FORCED_ROTATE
rpl_before_forced_rotate
Definition: rpl_debug_points.h:73
@ DBUG_RPL_S_PS_TABLE_QUEUE
rpl_ps_tables_queue
Definition: rpl_debug_points.h:88
@ DBUG_RPL_S_STOP_SLAVE_BACKUP_LOCK
stop_replica_dont_release_backup_lock
Definition: rpl_debug_points.h:52
@ DBUG_RPL_S_MTS_CHECKPOINT_END
mta_checkpoint - end
Definition: rpl_debug_points.h:106
@ DBUG_RPL_S_PAUSE_QUEUE_EV
pause_after_queue_event
Definition: rpl_debug_points.h:55
@ DBUG_RPL_S_PS_TABLES
rpl_ps_tables
Definition: rpl_debug_points.h:91
@ DBUG_RPL_S_BEFORE_MASTER_UUID
dbug.before_get_SOURCE_UUID
Definition: rpl_debug_points.h:61
@ DBUG_RPL_S_BEFORE_UNIX_TIMESTAMP
dbug.before_get_UNIX_TIMESTAMP
Definition: rpl_debug_points.h:67
@ DBUG_RPL_S_BEFORE_SERVER_ID
dbug.before_get_SERVER_ID
Definition: rpl_debug_points.h:70
@ DBUG_RPL_S_SBM_AFTER_PREVIOUS_GTID_EV
calculate_sbm_after_previous_gtid_log_event
Definition: rpl_debug_points.h:76
@ DBUG_RPL_R_WAIT_AFTER_AWAKE_ON_THREAD_STOP
Pause on a replica thread stop after aweking the THD.
Definition: rpl_debug_points.h:121
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:127