From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 69CB21FF13C for ; Thu, 11 Jun 2026 14:04:14 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 48EE93E8F; Thu, 11 Jun 2026 14:04:14 +0200 (CEST) From: Shannon Sterz To: pdm-devel@lists.proxmox.com Subject: [PATCH datacenter-manager 14/17] server: remotes: lock remotes config when updating it Date: Thu, 11 Jun 2026 14:03:24 +0200 Message-ID: <20260611120327.257523-15-s.sterz@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260611120327.257523-1-s.sterz@proxmox.com> References: <20260611120327.257523-1-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: 1781179364834 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.109 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment 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: VOUO7LOLI3HPZKYYWS62RUQI2QQBQDRL X-Message-ID-Hash: VOUO7LOLI3HPZKYYWS62RUQI2QQBQDRL 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 inconcsistencies, 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 090a3b32..d581681f 100644 --- a/server/src/api/remotes/mod.rs +++ b/server/src/api/remotes/mod.rs @@ -395,6 +395,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