]> git.proxmox.com Git - pve-ha-manager.git/commitdiff
fix relocate/restart trial count leak on service deletion
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 3 May 2016 08:03:14 +0000 (10:03 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 6 May 2016 05:52:44 +0000 (07:52 +0200)
If a service gets remove from HA remove also its relocate and
restart trial count from LRM status and manager_status, else it
never gets deleted (leak).

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/HA/LRM.pm
src/PVE/HA/Manager.pm

index fcbc33f853c918439d54a5d0f040609b6480b151..d49873fbb5b68cc0ca49028ea4f3066cf2bdb87d 100644 (file)
@@ -438,6 +438,10 @@ sub manage_resources {
 
     my $ss = $self->{service_status};
 
+    foreach my $sid (keys %{$self->{restart_tries}}) {
+       delete $self->{restart_tries}->{$sid} if !$ss->{$sid};
+    }
+
     foreach my $sid (keys %$ss) {
        my $sd = $ss->{$sid};
        next if !$sd->{node};
index 627036bdc56424d27b65e8bcf501a5e06f9ca562..9b299010f80e015504d7be87bda53ca2aa245624 100644 (file)
@@ -341,7 +341,12 @@ sub manage {
        $haenv->log('info', "removing stale service '$sid' (no config)");
        delete $ss->{$sid};
     }
-    
+
+    # remove stale relocation try entries
+    foreach my $sid (keys %{$ms->{relocate_trial}}) {
+       delete $ms->{relocate_trial}->{$sid} if !$ss->{$sid};
+    }
+
     $self->update_crm_commands();
 
     for (;;) {