On 4/29/20 10:52 AM, Fabian Grünbichler wrote:
> so that API paths that raise an exception while holding a CFS lock
> properly propagate that exception to the client, instead of the
> stringified version with added noise about locks added to the front.
> 
> Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com>
> ---
> 
> Notes:
>     there seems to be nothing that matches on the prefix added by cfs_lock.
>     
>     some API calls in pve-access-control, pve-storage and Replication would 
> now
>     benefit from raising (parameter) exceptions instead of a plain death while
>     having a config file locked (mainly checking for duplicates when adding 
> entries)
> 
>  data/PVE/Cluster.pm | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/data/PVE/Cluster.pm b/data/PVE/Cluster.pm
> index b4de989..cce681b 100644
> --- a/data/PVE/Cluster.pm
> +++ b/data/PVE/Cluster.pm
> @@ -609,7 +609,13 @@ my $cfs_lock = sub {
>      alarm($prev_alarm);
>  
>      if ($err) {
> -        $@ = "error with cfs lock '$lockid': $err";
> +     if (ref($err) eq 'PVE::Exception') {
> +         # re-raise defined exceptions
> +         $@ = $err;
> +     } else {
> +         # add lock info for plain errors 
> +         $@ = "error with cfs lock '$lockid': $err";
> +     }
>          return undef;
>      }
>  
> 

applied, followed up with fixing the trailing whitespace you introduced and 
adapting
the old "plain error" prefix message (which was there since the beginning of 
time ^^)
thanks!


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

Reply via email to