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 A1DC91FF15C for ; Fri, 19 Sep 2025 15:38:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 80EDE17AA8; Fri, 19 Sep 2025 15:38:34 +0200 (CEST) Message-ID: <160ecea1-21ca-431d-baea-6ecdce09da04@proxmox.com> Date: Fri, 19 Sep 2025 15:38:00 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Proxmox VE development discussion , Fiona Ebner References: <20250919120848.60751-1-f.ebner@proxmox.com> From: Aaron Lauterer In-Reply-To: <20250919120848.60751-1-f.ebner@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1758289070777 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.012 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. 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. [blockdev.pm] Subject: Re: [pve-devel] [PATCH qemu-server] fix #6713: snapshot volume chain: fix snapshot after disk move with zeroinit 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: , Reply-To: Proxmox VE development discussion Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" Tested by moving a disk from RBD to a directory storage with snapshot chains enabled. Verified without the patch that the error in the bug still happens. Then tested again after a cold boot of the VM with the patch. Rollback also worked. Tested-By: Aaron Lauterer On 2025-09-19 14:09, Fiona Ebner wrote: > After mirror, the node below throttle might not be the format node, > but can also be a zeroinit node. In particular, this is the node that > needs to be used by when replacing the blockdev for volume-chain > snapshots for the 'current' snapshot. Look up the actually inserted > node below throttle, rather than assuming that it's the format node. > > Also removes the $src_file_blockdev_name variable that has been unused > since commit e7cf7c00 ("blockdev: delete/replace: re-use detach() > helper"). > > Signed-off-by: Fiona Ebner > --- > src/PVE/QemuServer/Blockdev.pm | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm > index d4062148..8e6749e8 100644 > --- a/src/PVE/QemuServer/Blockdev.pm > +++ b/src/PVE/QemuServer/Blockdev.pm > @@ -924,9 +924,15 @@ sub blockdev_replace { > my $volid = $drive->{file}; > my $drive_id = PVE::QemuServer::Drive::get_drive_id($drive); > > - my $src_name_options = $src_snap eq 'current' ? {} : { 'snapshot-name' => $src_snap }; > - my $src_file_blockdev_name = get_node_name('file', $drive_id, $volid, $src_name_options); > - my $src_fmt_blockdev_name = get_node_name('fmt', $drive_id, $volid, $src_name_options); > + my $src_name_options = {}; > + my $src_blockdev_name; > + if ($src_snap eq 'current') { > + # there might be other nodes on top like zeroinit, look up the current node below throttle > + $src_blockdev_name = get_node_name_below_throttle($vmid, $deviceid, 1); > + } else { > + $src_name_options = { 'snapshot-name' => $src_snap }; > + $src_blockdev_name = get_node_name('fmt', $drive_id, $volid, $src_name_options); > + } > > my $target_file_blockdev = generate_file_blockdev( > $storecfg, > @@ -989,7 +995,7 @@ sub blockdev_replace { > } > > # delete old file|fmt nodes > - eval { detach($vmid, $src_fmt_blockdev_name); }; > + eval { detach($vmid, $src_blockdev_name); }; > warn "detaching block node for $src_snap failed - $@" if $@; > } > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel