Do check for MySQL restart first in case GET /config is slow. Increase margin to 5s.

This commit is contained in:
Daniel Nichter
2013-06-14 15:03:41 -07:00
parent 2ba12f3958
commit a771591815

View File

@@ -5944,6 +5944,11 @@ sub run_agent {
my $services = {};
my $slept = 0;
while ( $_oktorun->() ) {
check_if_mysql_restarted(
Cxn => $cxn,
slept => $slept,
);
($config, $lib_dir, $new_daemon, $success) = get_config(
link => $agent->links->{config},
agent => $agent,
@@ -5954,11 +5959,6 @@ sub run_agent {
quiet => $state->{first_config},
);
check_if_mysql_restarted(
Cxn => $cxn,
slept => $slept,
);
# Get services only if we successfully got the config because the services
# may depened on the current config, specifically the --spool dir.
if ( $success && $config && $config->links->{services} ) {
@@ -8429,6 +8429,7 @@ sub check_if_mysql_restarted {
# Optional args
my $uptime = $args{uptime}; # for testing
my $margin = $args{margin} || 5;
if ( !$uptime ) {
$logger->info("Connecting to MySQL");
@@ -8472,9 +8473,9 @@ sub check_if_mysql_restarted {
}
else {
my $uptime_should_be = $state->{last_uptime} + $slept;
my $mysql_restarted = $uptime > ($uptime_should_be - 3) && $uptime < ($uptime_should_be + 3) ? 0 : 1;
my $mysql_restarted = $uptime > ($uptime_should_be - $margin) && $uptime < ($uptime_should_be + $margin) ? 0 : 1;
$logger->info("Last uptime: $state->{last_uptime} Interval: $slept Uptime should be: $uptime_should_be "
. "Uptime: $uptime MySQL restarted: $mysql_restarted");
. "+/- ${margin}s Uptime: $uptime MySQL restarted: $mysql_restarted");
if ( $mysql_restarted ) {
$state->{mysql_restarted} = 1;
}