From: Hannes Laimer <h.laimer@proxmox.com>
To: "Fabian Grünbichler" <f.gruenbichler@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:43:31 +0200 [thread overview]
Message-ID: <76dedf1f-dc8c-42da-8d9f-ebb5b6616d09@proxmox.com> (raw)
In-Reply-To: <1777018910.mv34jbslq9.astroid@yuna.none>
On 2026-04-24 10:30, Fabian Grünbichler wrote:
> 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?
right, these shouldn't be in the manager. I'll send a fixup moving them!
that should also fix the permissions problem, thanks!
prev parent reply other threads:[~2026-04-24 8:43 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
2026-04-24 8:43 ` Hannes Laimer [this message]
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=76dedf1f-dc8c-42da-8d9f-ebb5b6616d09@proxmox.com \
--to=h.laimer@proxmox.com \
--cc=f.gruenbichler@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.