mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
WL#4259 - Debug Sync Facility
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.
This commit is contained in:
@ -226,6 +226,7 @@ my @default_valgrind_args= ("--show-reachable=yes");
|
||||
my @valgrind_args;
|
||||
my $opt_valgrind_path;
|
||||
my $opt_callgrind;
|
||||
my $opt_debug_sync_timeout= 300; # Default timeout for WAIT_FOR actions.
|
||||
|
||||
our $opt_warnings= 1;
|
||||
|
||||
@ -867,6 +868,7 @@ sub command_line_setup {
|
||||
'valgrind-option=s' => \@valgrind_args,
|
||||
'valgrind-path=s' => \$opt_valgrind_path,
|
||||
'callgrind' => \$opt_callgrind,
|
||||
'debug-sync-timeout=i' => \$opt_debug_sync_timeout,
|
||||
|
||||
# Directories
|
||||
'tmpdir=s' => \$opt_tmpdir,
|
||||
@ -4170,6 +4172,11 @@ sub mysqld_arguments ($$$) {
|
||||
mtr_add_arg($args, "%s", "--core-file");
|
||||
}
|
||||
|
||||
# Enable the debug sync facility, set default wait timeout.
|
||||
# Facility stays disabled if timeout value is zero.
|
||||
mtr_add_arg($args, "--loose-debug-sync-timeout=%s",
|
||||
$opt_debug_sync_timeout);
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
||||
@ -5280,6 +5287,8 @@ Misc options
|
||||
to turn off.
|
||||
|
||||
sleep=SECONDS Passed to mysqltest, will be used as fixed sleep time
|
||||
debug-sync-timeout=NUM Set default timeout for WAIT_FOR debug sync
|
||||
actions. Disable facility with NUM=0.
|
||||
gcov Collect coverage information after the test.
|
||||
The result is a gcov file per source and header file.
|
||||
experimental=<file> Refer to list of tests considered experimental;
|
||||
|
Reference in New Issue
Block a user