all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: Hannes Laimer <h.laimer@proxmox.com>,
	pbs-devel@lists.proxmox.com,
	Thomas Lamprecht <t.lamprecht@proxmox.com>
Subject: Re: applied: [PATCH proxmox-backup v8 00/13] fixes #6195: add support for moving groups and namespaces
Date: Fri, 24 Apr 2026 10:31:32 +0200	[thread overview]
Message-ID: <1777018910.mv34jbslq9.astroid@yuna.none> (raw)
In-Reply-To: <177698386728.726567.11620419590194139855.b4-ty@b4>

On April 24, 2026 12:38 am, Thomas Lamprecht wrote:
> On Wed, 22 Apr 2026 15:39:38 +0200, Hannes Laimer wrote:
>> Add support for moving backup groups and entire namespace subtrees to
>> a different location within the same datastore.
>> 
>> Groups are moved with exclusive per-group and per-snapshot locking.
>> For S3, objects are copied to the target prefix before deleting the
>> source. Namespace moves process groups individually, deferring and
>> retrying lock conflicts once, so partially failed moves can be
>> completed with move-group.
>> 
>> [...]
> 
> Applied, thanks!
> 
> Squashed in the relatively trivial fixes for what Michael found, but I really
> could not find any issue with locking after multiple looks, so either that came
> from some side effect in testing or we'd need more info for a good reproducer.

I can reproduce this easily, and the cause is that the
proxmox-backup-manager CLI handlers directly execute the API endpoints,
instead of going via the proxy..

that causes some parent dirs in the locking hiearchy to have the wrong
ownership (755 root:root instead of 755 backup:backup), which then turns
into

failed to delete snapshot - Error { context: "while destroying snapshot \'BackupDir { store: \"test\", ns: BackupNamespace { inner: [\"foobar\"], len: 7 }, dir: BackupDir { group: BackupGroup { ty: Host, id: \"bookworm\" }, time: 1674040234 }, backup_time_string: \"2023-01-18T11:10:34Z\" }\'", source: Error { context: "unable to acquire snapshot lock \"/run/proxmox-backup/locks/test/foobar/host-bookworm-2023\\\\x2d01\\\\x2d18T11\\\\x3a10\\\\x3a34Z\"", source: "mkstemp \"/run/proxmox-backup/locks/test/foobar/host-bookworm-2023\\\\x2d01\\\\x2d18T11\\\\x3a10\\\\x3a34Z.tmp_XXXXXX\" failed: EACCES: Permission denied", }, } (400)

because it's not possible for the user backup to create new lock files
in that directory.. cleared by a reboot or recursive chown, and fixed by
either moving those commands to the client, or letting manager connect
to the API.

it's also a bit weird that
- create namespace
- list namespaces
- delete namespace

for namespaces are all in proxmox-backup-client, but moving a namespace
is only available in proxmox-backup-manager which lacks all of the
above..

similarly, interactions with groups are in the client:
- create snapshot (and thus implictly groups)
- forget snapshots by pruning a group
- forget individual snapshots
- forgetting a whole group
- listing snapshots (and thus groups)
- changing group ownership

but moving a group is only available in proxmox-backup-manager again,
which has no other group-level commands AFAICT?




  reply	other threads:[~2026-04-24  8:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-22 13:39 [PATCH proxmox-backup v8 00/13] fixes #6195: add support for moving groups and namespaces Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 01/13] ui: show empty groups Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 02/13] datastore: lift check_namespace_depth_limit to pbs-datastore Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 03/13] datastore: have BackupGroup::destroy consume the group lock Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 04/13] datastore: split remove_namespace into flat and recursive variants Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 05/13] datastore: add move journal for coordinating with gc phase 1 Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 06/13] datastore: add move-group Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 07/13] datastore: add move-namespace Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 08/13] docs: add section on moving namespaces and groups Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 09/13] api: add POST endpoint for move-group Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 10/13] api: add POST endpoint for move-namespace Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 11/13] ui: add move group action Hannes Laimer
2026-04-23 13:35   ` Michael Köppl
2026-04-23 13:47     ` Hannes Laimer
2026-04-22 13:39 ` [PATCH proxmox-backup v8 12/13] ui: add move namespace action Hannes Laimer
2026-04-23 14:49   ` Michael Köppl
2026-04-22 13:39 ` [PATCH proxmox-backup v8 13/13] cli: add move-namespace and move-group commands Hannes Laimer
2026-04-23 16:29 ` [PATCH proxmox-backup v8 00/13] fixes #6195: add support for moving groups and namespaces Michael Köppl
2026-04-23 22:38 ` applied: " Thomas Lamprecht
2026-04-24  8:31   ` Fabian Grünbichler [this message]
2026-04-24  8:43     ` Hannes Laimer

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=1777018910.mv34jbslq9.astroid@yuna.none \
    --to=f.gruenbichler@proxmox.com \
    --cc=h.laimer@proxmox.com \
    --cc=pbs-devel@lists.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal