• Ingo Struewing's avatar
    WL#4259 - Debug Sync Facility · 4d57b851
    Ingo Struewing authored
    Backport from 6.0 to 5.1.
    Only those sync points are included, which are used in debug_sync.test.
    
      The Debug Sync Facility allows to place synchronization points
      in the code:
      
      open_tables(...)
      
      DEBUG_SYNC(thd, "after_open_tables");
      
      lock_tables(...)
      
      When activated, a sync point can
      
      - Send a signal and/or
      - Wait for a signal
      
      Nomenclature:
      
      - signal:            A value of a global variable that persists
                           until overwritten by a new signal. The global
                           variable can also be seen as a "signal post"
                           or "flag mast". Then the signal is what is
                           attached to the "signal post" or "flag mast".
      
      - send a signal:     Assign the value (the signal) to the global
                           variable ("set a flag") and broadcast a
                           global condition to wake those waiting for
                           a signal.
      
      - wait for a signal: Loop over waiting for the global condition until
                           the global value matches the wait-for signal.
      
      Please find more information in the top comment in debug_sync.cc
      or in the worklog entry.
    
    
    .bzrignore:
      WL#4259 - Debug Sync Facility
      Added the symbolic link libmysqld/debug_sync.cc.
    CMakeLists.txt:
      WL#4259 - Debug Sync Facility
      Added definition for ENABLED_DEBUG_SYNC.
    configure.in:
      WL#4259 - Debug Sync Facility
      Added definition for ENABLED_DEBUG_SYNC.
    include/my_sys.h:
      WL#4259 - Debug Sync Facility
      Added definition for the DEBUG_SYNC_C macro.
    libmysqld/CMakeLists.txt:
      WL#4259 - Debug Sync Facility
      Added sql/debug_sync.cc.
    libmysqld/Makefile.am:
      WL#4259 - Debug Sync Facility
      Added sql/debug_sync.cc.
    mysql-test/include/have_debug_sync.inc:
      WL#4259 - Debug Sync Facility
      New include file.
    mysql-test/mysql-test-run.pl:
      WL#4259 - Debug Sync Facility
      Added option --debug_sync_timeout.
    mysql-test/r/debug_sync.result:
      WL#4259 - Debug Sync Facility
      New test result.
    mysql-test/r/have_debug_sync.require:
      WL#4259 - Debug Sync Facility
      New require file.
    mysql-test/t/debug_sync.test:
      WL#4259 - Debug Sync Facility
      New test file.
    mysys/my_static.c:
      WL#4259 - Debug Sync Facility
      Added definition for debug_sync_C_callback_ptr.
    mysys/thr_lock.c:
      WL#4259 - Debug Sync Facility
      Added sync point "wait_for_lock".
    sql/CMakeLists.txt:
      WL#4259 - Debug Sync Facility
      Added debug_sync.cc and debug_sync.h.
    sql/Makefile.am:
      WL#4259 - Debug Sync Facility
      Added debug_sync.cc and debug_sync.h.
    sql/debug_sync.cc:
      WL#4259 - Debug Sync Facility
      New source file.
    sql/debug_sync.h:
      WL#4259 - Debug Sync Facility
      New header file.
    sql/mysqld.cc:
      WL#4259 - Debug Sync Facility
      Added opt_debug_sync_timeout.
      Added calls to debug_sync_init() and debug_sync_end().
      Fixed a purecov comment (unrelated).
    sql/set_var.cc:
      WL#4259 - Debug Sync Facility
      Added server variable "debug_sync".
    sql/set_var.h:
      WL#4259 - Debug Sync Facility
      Added declaration for server variable "debug_sync".
    sql/share/errmsg.txt:
      WL#4259 - Debug Sync Facility
      Added error messages ER_DEBUG_SYNC_TIMEOUT and ER_DEBUG_SYNC_HIT_LIMIT.
    sql/sql_base.cc:
      WL#4259 - Debug Sync Facility
      Added sync points "after_flush_unlock" and "before_lock_tables_takes_lock".
    sql/sql_class.cc:
      WL#4259 - Debug Sync Facility
      Added initialization for debug_sync_control to THD::THD.
      Added calls to debug_sync_init_thread() and debug_sync_end_thread().
    sql/sql_class.h:
      WL#4259 - Debug Sync Facility
      Added element debug_sync_control to THD.
    storage/myisam/myisamchk.c:
      Fixed a typo in an error message string (unrelated).
    4d57b851
thr_lock.c 53.4 KB