new valgrind suppression for ld.so
give mysqld more time to start under valgrind
This commit is contained in:
parent
db8f698c8a
commit
818af42f1d
@ -40,7 +40,7 @@ BEGIN
|
|||||||
eval 'sub USE_NETPING { $use_netping }';
|
eval 'sub USE_NETPING { $use_netping }';
|
||||||
}
|
}
|
||||||
|
|
||||||
sub sleep_until_file_created ($$$);
|
sub sleep_until_file_created ($$$$);
|
||||||
sub mtr_ping_port ($);
|
sub mtr_ping_port ($);
|
||||||
|
|
||||||
sub mtr_ping_port ($) {
|
sub mtr_ping_port ($) {
|
||||||
@ -102,10 +102,11 @@ sub mtr_ping_port ($) {
|
|||||||
|
|
||||||
# FIXME check that the pidfile contains the expected pid!
|
# FIXME check that the pidfile contains the expected pid!
|
||||||
|
|
||||||
sub sleep_until_file_created ($$$) {
|
sub sleep_until_file_created ($$$$) {
|
||||||
my $pidfile= shift;
|
my $pidfile= shift;
|
||||||
my $timeout= shift;
|
my $timeout= shift;
|
||||||
my $proc= shift;
|
my $proc= shift;
|
||||||
|
my $warn_seconds = shift;
|
||||||
my $sleeptime= 100; # Milliseconds
|
my $sleeptime= 100; # Milliseconds
|
||||||
my $loops= ($timeout * 1000) / $sleeptime;
|
my $loops= ($timeout * 1000) / $sleeptime;
|
||||||
|
|
||||||
@ -128,8 +129,8 @@ sub sleep_until_file_created ($$$) {
|
|||||||
|
|
||||||
mtr_debug("Sleep $sleeptime milliseconds waiting for $pidfile");
|
mtr_debug("Sleep $sleeptime milliseconds waiting for $pidfile");
|
||||||
|
|
||||||
# Print extra message every 60 seconds
|
# Print extra message every $warn_seconds seconds
|
||||||
if ( $seconds > 1 && int($seconds * 10) % 600 == 0 && $seconds < $timeout )
|
if ( $seconds > 1 && $seconds % $warn_seconds == 0 && $seconds < $timeout )
|
||||||
{
|
{
|
||||||
my $left= $timeout - $seconds;
|
my $left= $timeout - $seconds;
|
||||||
mtr_warning("Waited $seconds seconds for $pidfile to be created, " .
|
mtr_warning("Waited $seconds seconds for $pidfile to be created, " .
|
||||||
|
@ -311,6 +311,7 @@ my $valgrind_reports= 0;
|
|||||||
my $opt_callgrind;
|
my $opt_callgrind;
|
||||||
my %mysqld_logs;
|
my %mysqld_logs;
|
||||||
my $opt_debug_sync_timeout= 300; # Default timeout for WAIT_FOR actions.
|
my $opt_debug_sync_timeout= 300; # Default timeout for WAIT_FOR actions.
|
||||||
|
my $warn_seconds = 60;
|
||||||
|
|
||||||
sub testcase_timeout ($) {
|
sub testcase_timeout ($) {
|
||||||
my ($tinfo)= @_;
|
my ($tinfo)= @_;
|
||||||
@ -1737,12 +1738,6 @@ sub command_line_setup {
|
|||||||
$opt_valgrind= 1;
|
$opt_valgrind= 1;
|
||||||
$opt_valgrind_mysqld= 1;
|
$opt_valgrind_mysqld= 1;
|
||||||
$opt_valgrind_mysqltest= 1;
|
$opt_valgrind_mysqltest= 1;
|
||||||
|
|
||||||
# Increase the timeouts when running with valgrind
|
|
||||||
$opt_testcase_timeout*= 10;
|
|
||||||
$opt_suite_timeout*= 6;
|
|
||||||
$opt_start_timeout*= 10;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
elsif ( $opt_valgrind_mysqld )
|
elsif ( $opt_valgrind_mysqld )
|
||||||
{
|
{
|
||||||
@ -1755,6 +1750,15 @@ sub command_line_setup {
|
|||||||
$opt_valgrind= 1;
|
$opt_valgrind= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($opt_valgrind)
|
||||||
|
{
|
||||||
|
# Increase the timeouts when running with valgrind
|
||||||
|
$opt_testcase_timeout*= 10;
|
||||||
|
$opt_suite_timeout*= 6;
|
||||||
|
$opt_start_timeout*= 10;
|
||||||
|
$warn_seconds*= 10;
|
||||||
|
}
|
||||||
|
|
||||||
if ( $opt_callgrind )
|
if ( $opt_callgrind )
|
||||||
{
|
{
|
||||||
mtr_report("Turning on valgrind with callgrind for mysqld(s)");
|
mtr_report("Turning on valgrind with callgrind for mysqld(s)");
|
||||||
@ -3229,7 +3233,8 @@ sub mysql_server_wait {
|
|||||||
|
|
||||||
return not sleep_until_file_created($mysqld->value('pid-file'),
|
return not sleep_until_file_created($mysqld->value('pid-file'),
|
||||||
$opt_start_timeout,
|
$opt_start_timeout,
|
||||||
$mysqld->{'proc'});
|
$mysqld->{'proc'},
|
||||||
|
$warn_seconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub create_config_file_for_extern {
|
sub create_config_file_for_extern {
|
||||||
@ -5472,7 +5477,8 @@ sub mysqld_start ($$) {
|
|||||||
if ( $wait_for_pid_file &&
|
if ( $wait_for_pid_file &&
|
||||||
!sleep_until_file_created($mysqld->value('pid-file'),
|
!sleep_until_file_created($mysqld->value('pid-file'),
|
||||||
$opt_start_timeout,
|
$opt_start_timeout,
|
||||||
$mysqld->{'proc'}))
|
$mysqld->{'proc'},
|
||||||
|
$warn_seconds))
|
||||||
{
|
{
|
||||||
my $mname= $mysqld->name();
|
my $mname= $mysqld->name();
|
||||||
mtr_error("Failed to start mysqld $mname with command $exe");
|
mtr_error("Failed to start mysqld $mname with command $exe");
|
||||||
|
@ -150,12 +150,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond)
|
somewhere in ld.so, when loading mysqld
|
||||||
Memcheck:Cond
|
Memcheck:Cond
|
||||||
fun:strlen
|
...
|
||||||
fun:_dl_init_paths
|
|
||||||
fun:dl_main
|
fun:dl_main
|
||||||
fun:_dl_sysdep_start
|
fun:_dl_sysdep_start
|
||||||
|
fun:_dl_start
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user