1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
################################################################################
# Validate that a given statement goes through the `trans_begin` hook on Group
# Replication on server1.
#
# ==== Usage ====
#
# --let $statement_to_hold= STATEMENT
#
#
# Parameters:
#
# $statement_to_hold
# The statement to be validated.
#
################################################################################
if (!$statement_to_hold)
{
--die "Missing argument 'statement_to_hold'"
}
--echo
--echo # Instrument GR to hold the statement on
--echo # `trans_begin` hook on server1.
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc
--let $debug_point= group_replication_wait_on_observer_trans
--source include/add_debug_point.inc
--echo
--echo # Execute the statement on server1.
--let $rpl_connection_name= server1
--source include/rpl_connection.inc
--send_eval $statement_to_hold
--echo
--echo # Validate that the statement went on
--echo # `trans_begin` hook on server1.
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_wait_on_observer_trans_waiting";
--echo
--echo # Release the statement from
--echo # `trans_begin` hook on server1.
SET DEBUG_SYNC= 'now SIGNAL signal.group_replication_wait_on_observer_trans_continue';
--echo
--echo # Reap the statement on server1.
--let $rpl_connection_name= server1
--source include/rpl_connection.inc
--disable_result_log
--reap
--enable_result_log
--echo
--echo # Remove GR instrumentaion to hold the statement on
--echo # `trans_begin` hook on server1.
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc
--let $debug_point= group_replication_wait_on_observer_trans
--source include/remove_debug_point.inc
|