Browse Source
Bug #51648 DBUG_SYNC_POINT is not defined on all platforms and mtr cant pre-check that
Bug #51648 DBUG_SYNC_POINT is not defined on all platforms and mtr cant pre-check that
DBUG_SYNC_POINT has at least one strong limitation that it's not defined on all platforms. It has issues cooperating with @@debug. All in all its functionality is superseded by DEBUG_SYNC facility and there is no reason to maintain the old less flexible one. Fixed with adding debug_sync_set_action() function as a facility to set up a sync-action in the server sources code and re-writing existing simulations (found 3) to use it. Couple of tests have been reworked as well. The patch offers a pattern for setting sync-points in replication threads where the standard DEBUG_SYNC does not suffice to reach goals. mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test: rewriting the test from GET_LOCK()-based to DEBUG_SYNC-based; a pattern of usage DEBUG_SYNC for replication testing is provided. mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result: results are changed. mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test: rewriting the test from GET_LOCK()-based to DEBUG_SYNC-based; limiting the test to run only with MIXED binlog-format as the test last some 10 secs sensitively contributing to the total of tests run. mysql-test/suite/rpl/t/rpl_show_slave_running.test: rewriting the test from GET_LOCK()-based to DEBUG_SYNC-based. sql/debug_sync.cc: adding debug_sync_set_action() function as a facility to set up a sync-action in the server sources code. sql/debug_sync.h: externalizing debug_sync_set_action(). sql/item_func.cc: purging sources from DBUG_SYNC_POINT. sql/mysql_priv.h: purging sources from DBUG_SYNC_POINT. sql/slave.cc: rewriting failure simulations to base on DEBUG_SYNC rather than GET_LOCK()-based DBUG_SYNC_POINT. sql/sql_repl.cc: removing an orphan failure simulation line because no counterpart in tests existing.pull/374/head
11 changed files with 152 additions and 143 deletions
-
53mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
-
31mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
-
11mysql-test/suite/rpl/r/rpl_show_slave_running.result
-
27mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
-
12mysql-test/suite/rpl/t/rpl_show_slave_running.test
-
38sql/debug_sync.cc
-
1sql/debug_sync.h
-
74sql/item_func.cc
-
14sql/mysql_priv.h
-
33sql/slave.cc
-
1sql/sql_repl.cc
Write
Preview
Loading…
Cancel
Save
Reference in new issue