From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <t.lamprecht@proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 6674F6CBD6
 for <pve-devel@lists.proxmox.com>; Fri, 24 Sep 2021 11:04:25 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 269FE2FE45
 for <pve-devel@lists.proxmox.com>; Fri, 24 Sep 2021 11:03:55 +0200 (CEST)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [94.136.29.106])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS id 9FD7A2FE39
 for <pve-devel@lists.proxmox.com>; Fri, 24 Sep 2021 11:03:54 +0200 (CEST)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 64A8C44A83
 for <pve-devel@lists.proxmox.com>; Fri, 24 Sep 2021 11:03:54 +0200 (CEST)
Message-ID: <a5b8645d-222c-06b0-c753-031242fdd0b3@proxmox.com>
Date: Fri, 24 Sep 2021 11:03:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101
 Thunderbird/93.0
Content-Language: en-US
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
 Dominik Csapak <d.csapak@proxmox.com>, Fabian Ebner <f.ebner@proxmox.com>
References: <20210917130227.248852-1-f.ebner@proxmox.com>
 <20210917130227.248852-2-f.ebner@proxmox.com>
 <e5484859-715a-7878-568e-c0b78431a9be@proxmox.com>
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
In-Reply-To: <e5484859-715a-7878-568e-c0b78431a9be@proxmox.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.250 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 NICE_REPLY_A           -0.001 Looks like a legit reply (A)
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [dirplugin.pm]
Subject: Re: [pve-devel] [PATCH storage 1/6] dir plugin: update notes: don't
 attempt to remove non-existent notes
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Fri, 24 Sep 2021 09:04:25 -0000

On 24.09.21 10:54, Dominik Csapak wrote:
> On 9/17/21 15:02, Fabian Ebner wrote:
>> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
>> ---
>> =C2=A0 PVE/Storage/DirPlugin.pm | 2 +-
>> =C2=A0 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/PVE/Storage/DirPlugin.pm b/PVE/Storage/DirPlugin.pm
>> index 2267f11..0423e5f 100644
>> --- a/PVE/Storage/DirPlugin.pm
>> +++ b/PVE/Storage/DirPlugin.pm
>> @@ -109,7 +109,7 @@ sub update_volume_notes {
>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (defined($notes) && $notes ne=
 '') {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PVE::Tools::file_set_contents($path, $n=
otes);
>> -=C2=A0=C2=A0=C2=A0 } else {
>> +=C2=A0=C2=A0=C2=A0 } elsif (-e $path) {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unlink $path or die "could not delete n=
otes - $!\n";
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return;
>>
>=20
> nit: it is still racy, and imho the correct solution would be to
> ignore the error but only if the file did not exists
> iow $! is ENOENT
>=20
> for most cases it's enough though and i am not sure if the
> added complexity is worth it...

IMO it's worth it and it's really not much complexity..

use POSIX; # or `use POSIX qw(ENOENT);` if we filter default-exports from=
 the POSIX module already

unlink $path;
die "could not delete notes - $!\n" if $! && $! !=3D ENOENT;