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 B25301FF141 for ; Tue, 19 May 2026 16:39:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id B11A4ADE3; Tue, 19 May 2026 16:39:19 +0200 (CEST) From: Daniel Kral To: pve-devel@lists.proxmox.com Subject: [PATCH-SERIES ha-manager 0/2] make idle LRMs resolve leftover moving HA resources while disarmed Date: Tue, 19 May 2026 16:38:34 +0200 Message-ID: <20260519143842.382324-1-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1779201511698 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.075 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: I3EXXEPGEIHKFJ73NREL7N5EDVQ3WDW3 X-Message-ID-Hash: I3EXXEPGEIHKFJ73NREL7N5EDVQ3WDW3 X-MailFrom: d.kral@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 VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: As in patch message #2: If there are HA resources, which are in transient states that defer the disarming process, but their LRMs are already in idle state and disarmed mode, these LRMs will not properly resolve the transient states of these HA resources as assumed by the HA Manager. For HA resources, which are still moving, this makes the HA Manager stuck in a loop, which tries to defer the disarming process to wait for a LRM response for these moving HA resources, which will never come as the LRM is idle. Therefore allow the LRM to become active in disarm mode if there are any HA resources on the LRM's node, which are in any of these transient states, and make sure that the LRM only processes the disarm-deferring HA resources while the LRM is active. Daniel Kral (2): test: add disarm test cases for idle lrms with transient ha resources make idle LRMs resolve leftover moving HA resources while disarmed src/PVE/HA/LRM.pm | 19 ++++++++- src/PVE/HA/Manager.pm | 8 ++-- src/PVE/HA/Tools.pm | 17 ++++++++ src/test/test-disarm-idle-lrm1/README | 8 ++++ src/test/test-disarm-idle-lrm1/cmdlist | 3 ++ .../test-disarm-idle-lrm1/hardware_status | 5 +++ src/test/test-disarm-idle-lrm1/log.expect | 40 +++++++++++++++++++ src/test/test-disarm-idle-lrm1/manager_status | 26 ++++++++++++ src/test/test-disarm-idle-lrm1/service_config | 5 +++ src/test/test-disarm-idle-lrm2/README | 8 ++++ src/test/test-disarm-idle-lrm2/cmdlist | 3 ++ .../test-disarm-idle-lrm2/hardware_status | 5 +++ src/test/test-disarm-idle-lrm2/log.expect | 39 ++++++++++++++++++ src/test/test-disarm-idle-lrm2/manager_status | 26 ++++++++++++ src/test/test-disarm-idle-lrm2/service_config | 5 +++ 15 files changed, 211 insertions(+), 6 deletions(-) create mode 100644 src/test/test-disarm-idle-lrm1/README create mode 100644 src/test/test-disarm-idle-lrm1/cmdlist create mode 100644 src/test/test-disarm-idle-lrm1/hardware_status create mode 100644 src/test/test-disarm-idle-lrm1/log.expect create mode 100644 src/test/test-disarm-idle-lrm1/manager_status create mode 100644 src/test/test-disarm-idle-lrm1/service_config create mode 100644 src/test/test-disarm-idle-lrm2/README create mode 100644 src/test/test-disarm-idle-lrm2/cmdlist create mode 100644 src/test/test-disarm-idle-lrm2/hardware_status create mode 100644 src/test/test-disarm-idle-lrm2/log.expect create mode 100644 src/test/test-disarm-idle-lrm2/manager_status create mode 100644 src/test/test-disarm-idle-lrm2/service_config -- 2.47.3