It can be useful to know whether we actually have an empty
vm list or whether the last cfs_update call simply failed.
Previously this only warned.

This way we can avoid a nasty type of race condition. For
instance in pvesr where it's possible that the vm list query
fails while everything else worked (eg. if the pmxcfs was
just starting up, or died between the queries), in which
case it would assume there are no guests and the
purge-old-states step would clear out the entire local state
file.

Signed-off-by: Wolfgang Bumiller <w.bumil...@proxmox.com>
---
No changes

 data/PVE/Cluster.pm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/data/PVE/Cluster.pm b/data/PVE/Cluster.pm
index 999e955..70ce250 100644
--- a/data/PVE/Cluster.pm
+++ b/data/PVE/Cluster.pm
@@ -450,6 +450,7 @@ my $ipcc_get_cluster_log = sub {
 my $ccache = {};
 
 sub cfs_update {
+    my ($fail) = @_;
     eval {
        my $res = &$ipcc_send_rec_json(1);
        #warn "GOT1: " . Dumper($res);
@@ -471,6 +472,7 @@ sub cfs_update {
        $vmlist = {};
        $clinfo = {};
        $ccache = {};
+       die $err if $fail;
        warn $err;
     }
 
@@ -483,6 +485,7 @@ sub cfs_update {
     $err = $@;
     if ($err) {
        $clinfo = {};
+       die $err if $fail;
        warn $err;
     }
 
@@ -495,6 +498,7 @@ sub cfs_update {
     $err = $@;
     if ($err) {
        $vmlist = {};
+       die $err if $fail;
        warn $err;
     }
 }
-- 
2.11.0


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to