From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 2893895875 for ; Fri, 12 Apr 2024 16:17:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0B51ABC0D for ; Fri, 12 Apr 2024 16:16:50 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 12 Apr 2024 16:16:49 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id B538645081 for ; Fri, 12 Apr 2024 16:16:48 +0200 (CEST) From: Friedrich Weber To: pve-devel@lists.proxmox.com Date: Fri, 12 Apr 2024 16:15:48 +0200 Message-Id: <20240412141553.430554-1-f.weber@proxmox.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.066 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, status.pm, guesthelpers.pm, qemu.pm] Subject: [pve-devel] [PATCH guest-common/container/qemu-server/manager v3 0/5] fix #4474: stop tasks may overrule shutdown tasks X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2024 14:17:20 -0000 As reported in #4474 [0], a user may attempt to shutdown a VM/CT, realize that it is unresponsive, and decide to stop it instead. If the shutdown task has not timed out yet, the stop task will fail. The user needs to manually abort the shutdown task before stopping the VM, which is inconvenient. With this patch series, a stop task can optionally overrule active shutdown tasks. Summary of changes: - Backend: We add a new optional `overrule-shutdown` parameter to VM/CT `/stop` endpoints. If it is 1, we query for active `qmshutdown`/`vzshutdown` tasks for the given VMID that are visible for the user, and abort them before attempting to stop the VM/CT. Users/tokens with `Sys.Modify` can abort any guest task, users can abort their own guest tasks (including the ones by their tokens), and tokens can only abort their own guest tasks. - Frontend: Issuing a stop command shows a confirmation message box that, if an active shutdown task for that guest is detected, shows a default-on checkbox that offers to overrule active shutdown tasks. If it is checked, the API request is sent with `overrule-shutdown=1`. Tested with a hung CentOS 7 container and a SeaBIOS VM without a bootable disk. Changes v2 -> v3: - dropped pve-container patch that was already applied in v2 - incorporated suggestions by Thomas, see individual patches for details Changes v1 -> v2: - fixed patch ordering, as suggested by Wolfgang on v1 - added a pve-container patch that moves config locking from API handlers into workers for start/stop/shutdown/suspend, as suggested by Wolfgang on v1 - instead of showing a second modal dialog when stopping a guest, show a "guest stop" message box that has an optional checkbox offering to overrule shutdown tasks - split pve-manager patch in two [0]: https://bugzilla.proxmox.com/show_bug.cgi?id=4474 guest-common: Friedrich Weber (1): guest helpers: add helper to abort active guest tasks of a certain type src/PVE/GuestHelpers.pm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) container: Friedrich Weber (1): fix #4474: lxc api: add overrule-shutdown parameter to stop endpoint src/PVE/API2/LXC/Status.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) qemu-server: Friedrich Weber (1): fix #4474: qemu api: add overrule-shutdown parameter to stop endpoint PVE/API2/Qemu.pm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) manager: Friedrich Weber (2): ui: fix typo to make pve-cluster-tasks store globally available fix #4474: ui: guest stop: offer to overrule active shutdown tasks www/manager6/Makefile | 1 + www/manager6/dc/Tasks.js | 2 +- www/manager6/lxc/CmdMenu.js | 8 +++- www/manager6/lxc/Config.js | 8 ++-- www/manager6/qemu/CmdMenu.js | 8 +++- www/manager6/qemu/Config.js | 8 ++-- www/manager6/window/GuestStop.js | 79 ++++++++++++++++++++++++++++++++ 7 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 www/manager6/window/GuestStop.js Summary over all repositories: 10 files changed, 177 insertions(+), 0 deletions(-) -- Generated by git-murpp 0.5.0