• Andrei Elkin's avatar
    Bug #51648 DBUG_SYNC_POINT is not defined on all platforms and mtr cant pre-check that · c3cd608a
    Andrei Elkin authored
    
    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.
    c3cd608a
debug_sync.h 2.08 KB