merged pt-heartbeat-crashes-with-sleep-argument-1406390

This commit is contained in:
Frank Cizmich
2015-04-09 11:49:13 -03:00

View File

@@ -5286,13 +5286,16 @@ sub main {
) {
eval {
my $next_interval = $get_next_interval->();
if ( time >= $next_interval ) {
# save current time in variable to avoid race condition
# https://bugs.launchpad.net/percona-toolkit/+bug/1406390
my $time = time;
if ( $time >= $next_interval ) {
do { $next_interval = $get_next_interval->() }
until $next_interval > time;
until $next_interval > $time;
PTDEBUG && _d("Missed last interval; next interval:",
ts($next_interval));
}
sleep $next_interval - time;
sleep $next_interval - $time;
PTDEBUG && _d('Woke up at', ts(time));
# Connect or reconnect if necessary.
@@ -5419,13 +5422,16 @@ sub check_delay {
PTDEBUG && _d('Checking slave', $dp->as_string($dsn));
my $next_interval = $get_next_interval->();
if ( time >= $next_interval ) {
# save current time in variable to avoid race condition
# https://bugs.launchpad.net/percona-toolkit/+bug/1406390
my $time = time;
if ( $time >= $next_interval ) {
do { $next_interval = $get_next_interval->() }
until $next_interval > time;
until $next_interval > $time;
PTDEBUG && _d("Missed last interval; next interval:",
ts($next_interval));
}
sleep $next_interval - time;
sleep $next_interval - $time;
PTDEBUG && _d('Woke up at', ts(time));
my ($delay, $hostname, $master_server_id) = $get_delay->($sth);