From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id A919F1FF12C for ; Wed, 05 Aug 2026 15:19:18 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 34A9721A26; Wed, 05 Aug 2026 15:18:59 +0200 (CEST) From: Shannon Sterz To: pdm-devel@lists.proxmox.com Subject: [PATCH datacenter-manager v2 13/16] server: remotes: lock remotes config when updating it Date: Wed, 5 Aug 2026 15:18:36 +0200 Message-ID: <20260805131838.254723-15-s.sterz@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260805131838.254723-2-s.sterz@proxmox.com> References: <20260805131838.254723-2-s.sterz@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1785935919282 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.122 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_LOW -0.7 Sender listed at https://www.dnswl.org/, low trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: LE7MFYPPQNPUBSNNT2KX4T2KWAMAZTEO X-Message-ID-Hash: LE7MFYPPQNPUBSNNT2KX4T2KWAMAZTEO X-MailFrom: s.sterz@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: since we read the config, then check the digest, and after modifying write it back out again, another thread could modify the config between reading and writing. this could lead to inconsistencies, so make sure to lock the config. Signed-off-by: Shannon Sterz --- server/src/api/remotes/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/api/remotes/mod.rs b/server/src/api/remotes/mod.rs index 808b08d6..03dde9fa 100644 --- a/server/src/api/remotes/mod.rs +++ b/server/src/api/remotes/mod.rs @@ -400,6 +400,7 @@ pub fn update_remote( delete: Option>, digest: Option, ) -> Result<(), Error> { + let _lock = pdm_config::remotes::lock_config()?; let (mut remotes, config_digest) = pdm_config::remotes::config()?; config_digest.detect_modification(digest.as_ref())?; -- 2.47.3