On 10/11/2017 09:36 AM, Wolfgang Bumiller wrote:
> 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;
>      }
>  }
> 

Reviewed-by: Thomas Lamprecht <t.lamprecht.org>

The guest-common change looks also OK but is in code where I've
done very little with...

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

Reply via email to