From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 9918BB6B8 for ; Thu, 7 Apr 2022 10:11:18 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8849225AF for ; Thu, 7 Apr 2022 10:10:48 +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) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 086B8259C for ; Thu, 7 Apr 2022 10:10:48 +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 C307C41A28 for ; Thu, 7 Apr 2022 10:10:47 +0200 (CEST) Date: Thu, 7 Apr 2022 10:10:47 +0200 From: Wolfgang Bumiller To: Thomas Lamprecht Cc: Proxmox Backup Server development discussion , Stefan Sterz Message-ID: <20220407081047.f3szlutdma4t4az4@olga.proxmox.com> References: <20220406093955.3180508-1-s.sterz@proxmox.com> <20220406093955.3180508-2-s.sterz@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-SPAM-LEVEL: Spam detection results: 0 AWL 0.193 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: Re: [pbs-devel] [PATCH proxmox-backup v1 1/3] fix #3935: datastore/api2/backup: move datastore locking to '/run' X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2022 08:11:18 -0000 On Wed, Apr 06, 2022 at 04:51:50PM +0200, Thomas Lamprecht wrote: > Thanks for this, no in-depth review/comments, but some higher-level/meta ones, > sorry for that ;-) > > On 06.04.22 11:39, Stefan Sterz wrote: > > to avoid issues when removing a group or snapshot directory where two > > threads hold a lock to the same directory, move locking to the tmpfs > > backed '/run' directory. also adds double stat'ing to make it > > possible to remove locks without certain race condition issues. > > maybe it would be slightly easier to review (or "conserver" in the git > history) if adding the lock methods and changing to /run + double-stat > would be in two separate patches? > > > > > Signed-off-by: Stefan Sterz > > --- > > i chose to have the lock be the sha256 hash of the relative path of a > > while really not user friendly it /could/ be ok to do and from a technical > POV it would make it a bit simpler. I really dislike hashes here very much 😕. > > > given group/snapshot/manifest in a datastore, because this way we > > never run into issues where file names might be too long. this has > > been discussed in previously[1]. i could also encode them using > > don't see the hash stuff discussed anywhere in [1]? Or did you mean the > "it can get long" point? > > > proxmox_sys::systemd::escape_unit, but that would use two characters > > for most ascii characters and, thus, we would run into the 255 byte > > how would that use two chars for every ascii? As mostly / and - would be > affected? Given our schemas it wouldn't be all that bad I think? But it really does escape a *lot* and we may as well just use percent encoding with a less inconvenient escape list (eg. '/', '\', '%' & control chars).