If a service is in the error state we got an not rather useful log message about every 5 seconds, this sums up rather quickly and is not quite helpful.
This changes the behaviour so that we get an initial log message and then once per minute. Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> --- src/PVE/HA/LRM.pm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/PVE/HA/LRM.pm b/src/PVE/HA/LRM.pm index 9e8d046..17863ba 100644 --- a/src/PVE/HA/LRM.pm +++ b/src/PVE/HA/LRM.pm @@ -359,6 +359,9 @@ sub do_one_iteration { return 1; } +# for not logging the error state every round +my $log_error = 0; + sub run_workers { my ($self) = @_; @@ -379,6 +382,8 @@ sub run_workers { my $w = $self->{workers}->{$sid}; if (!$w->{pid}) { + my @agent_params = ($sid, $sc->{$sid}, $w->{state}, $w->{target}, + $log_error); # only fork if we may else call exec_resource_agent # directly (e.g. for regression tests) if ($max_workers > 0) { @@ -392,7 +397,7 @@ sub run_workers { # do work my $res = -1; eval { - $res = $self->exec_resource_agent($sid, $sc->{$sid}, $w->{state}, $w->{target}); + $res = $self->exec_resource_agent(@agent_params ); }; if (my $err = $@) { $haenv->log('err', $err); @@ -406,7 +411,7 @@ sub run_workers { } else { my $res = -1; eval { - $res = $self->exec_resource_agent($sid, $sc->{$sid}, $w->{state}, $w->{target}); + $res = $self->exec_resource_agent(@agent_params); $res = $res << 8 if $res > 0; }; if (my $err = $@) { @@ -423,6 +428,9 @@ sub run_workers { last if !$count; + # log errors every 60 seconds + $log_error = ($log_error + 1) % 12; + $haenv->sleep(1); } -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel