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. --- This will be used in PVE::ReplicationState::purge_old_states to verify that it's not accidentally deleting valid states. data/PVE/Cluster.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/PVE/Cluster.pm b/data/PVE/Cluster.pm index 05f144f..3e27c52 100644 --- a/data/PVE/Cluster.pm +++ b/data/PVE/Cluster.pm @@ -448,6 +448,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); @@ -469,6 +470,7 @@ sub cfs_update { $vmlist = {}; $clinfo = {}; $ccache = {}; + die $err if $fail; warn $err; } @@ -481,6 +483,7 @@ sub cfs_update { $err = $@; if ($err) { $clinfo = {}; + die $err if $fail; warn $err; } @@ -493,6 +496,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