public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: Thomas Lamprecht <t.lamprecht@proxmox.com>
Cc: Proxmox Backup Server development discussion
	<pbs-devel@lists.proxmox.com>,
	 Stefan Sterz <s.sterz@proxmox.com>
Subject: Re: [pbs-devel] [PATCH proxmox-backup v1 1/3] fix #3935: datastore/api2/backup: move datastore locking to '/run'
Date: Thu, 7 Apr 2022 10:10:47 +0200	[thread overview]
Message-ID: <20220407081047.f3szlutdma4t4az4@olga.proxmox.com> (raw)
In-Reply-To: <ba6ae523-ef2f-eadc-3776-2627de792575@proxmox.com>

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 <s.sterz@proxmox.com>
> > ---
> > 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).




  reply	other threads:[~2022-04-07  8:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-06  9:39 [pbs-devel] [PATCH proxmox-backup v1 0/3] refactor datastore locking to use tmpfs Stefan Sterz
2022-04-06  9:39 ` [pbs-devel] [PATCH proxmox-backup v1 1/3] fix #3935: datastore/api2/backup: move datastore locking to '/run' Stefan Sterz
2022-04-06 14:51   ` Thomas Lamprecht
2022-04-07  8:10     ` Wolfgang Bumiller [this message]
2022-04-07  8:35       ` Stefan Sterz
2022-04-07  8:45   ` Wolfgang Bumiller
2022-04-06  9:39 ` [pbs-devel] [PATCH proxmox-backup v1 2/3] fix: datastore: move manifest locking to new locking method Stefan Sterz
2022-04-07  8:52   ` Wolfgang Bumiller
2022-04-06  9:39 ` [pbs-devel] [PATCH proxmox-backup v1 3/3] fix: api: avoid race condition in set_backup_owner Stefan Sterz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220407081047.f3szlutdma4t4az4@olga.proxmox.com \
    --to=w.bumiller@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    --cc=s.sterz@proxmox.com \
    --cc=t.lamprecht@proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal