From: Robert Obkircher <r.obkircher@proxmox.com>
To: Christian Ebner <c.ebner@proxmox.com>
Cc: pbs-devel@lists.proxmox.com
Subject: Re: [PATCH proxmox-backup v3 08/10] api/datastore: use maintenance-mode lock to protect against changes
Date: Thu, 23 Jul 2026 13:52:10 +0200 [thread overview]
Message-ID: <178480753020.88450.10399555870737928063.b4-review@b4> (raw)
In-Reply-To: <20260721103643.333028-9-c.ebner@proxmox.com>
> The bucket access check performed when creating a new datastore with
> s3 backend can theoretically block up to the set s3 client request
> timeout of 30 min. It is not acceptable to hold the config lock for
> this long, effectively blocking configuration access for unrelated
> datastores.
>
> Move the check to the start so it is performed before even locking
> the config.
>
> Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
>
> diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
> index b3b6ed8c6..bbbd79ab0 100644
> --- a/src/api2/config/datastore.rs
> +++ b/src/api2/config/datastore.rs
> @@ -166,6 +166,13 @@ pub fn create_datastore(
> overwrite_in_use: bool,
> rpcenv: &mut dyn RpcEnvironment,
> ) -> Result<String, Error> {
> + let (backend, s3_client) = DataStore::s3_client_and_backend_from_datastore_config(&config)?;
> + if let Some(s3_client) = s3_client {
> + proxmox_async::runtime::block_on(s3_client.head_bucket())
> + .context("failed to access bucket")
> + .map_err(|err| format_err!("{err:#}"))?;
> + }
> +
This could now incremnt the request counters of an existing store,
but that shold be ok and I didn't spot any other side effects.
--
Robert Obkircher <r.obkircher@proxmox.com>
next prev parent reply other threads:[~2026-07-23 11:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-21 10:36 [PATCH proxmox{,-backup} v3 00/10] keep datastore config unlocked during long running operations Christian Ebner
2026-07-21 10:36 ` [PATCH proxmox v3 01/10] pbs-api-types: add datastore create maintenance-mode type Christian Ebner
2026-07-21 10:36 ` [PATCH proxmox-backup v3 02/10] api: config: rearrange independent code block for datastore creation Christian Ebner
2026-07-21 10:36 ` [PATCH proxmox-backup v3 03/10] api/datastore: refactor datastore creation helper logic Christian Ebner
2026-07-21 10:36 ` [PATCH proxmox-backup v3 04/10] datastore: restrict chunk store scope to pbs-datastore crate Christian Ebner
2026-07-23 11:52 ` Robert Obkircher
2026-07-21 10:36 ` [PATCH proxmox-backup v3 05/10] datastore: move lock files base path constant to central location Christian Ebner
2026-07-23 11:52 ` Robert Obkircher
2026-07-21 10:36 ` [PATCH proxmox-backup v3 06/10] datastore: move file lock helper to centralized place Christian Ebner
2026-07-21 10:36 ` [PATCH proxmox-backup v3 07/10] datastore: create lockdir with correct mode for backup user access Christian Ebner
2026-07-23 11:52 ` Robert Obkircher
2026-07-21 10:36 ` [PATCH proxmox-backup v3 08/10] api/datastore: use maintenance-mode lock to protect against changes Christian Ebner
2026-07-23 11:52 ` Robert Obkircher [this message]
2026-07-21 10:36 ` [PATCH proxmox-backup v3 09/10] api: config: unlocked s3 bucket access check for datastore creation Christian Ebner
2026-07-23 11:52 ` Robert Obkircher
2026-07-23 14:31 ` Christian Ebner
2026-07-21 10:36 ` [PATCH proxmox-backup v3 10/10] datastore: protect datastore creation by maintenance-mode Christian Ebner
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=178480753020.88450.10399555870737928063.b4-review@b4 \
--to=r.obkircher@proxmox.com \
--cc=c.ebner@proxmox.com \
--cc=pbs-devel@lists.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