From: Friedrich Weber <f.weber@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
Fiona Ebner <f.ebner@proxmox.com>
Subject: Re: [pve-devel] [PATCH qemu-server] block job: mirror: always detach the target node upon cancelling
Date: Thu, 31 Jul 2025 11:16:05 +0200 [thread overview]
Message-ID: <b9de7ef0-f8d8-4302-8dea-84f3da9c664d@proxmox.com> (raw)
In-Reply-To: <20250731090956.23443-1-f.ebner@proxmox.com>
On 31/07/2025 11:09, Fiona Ebner wrote:
> This is a further improvement after commit 8e671e79 ("block job:
> mirror: always detach the target node upon error"). It might be
> that a cancelled job ends up in concluded state without an error
> being set in the result of the 'query-block-jobs' QMP command and
> the target node would not be detached. To fix it, also detach the
> target node when cancelling the job. This is correct even when the job
> was cancelled after completion, as in that case, the drive is not
> switched over to use the target node.
>
> Reported-by: Friedrich Weber <f.weber@proxmox.com>
> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
> ---
Thanks for the patch!
Seems to fix my reproducer:
Without this patch (`opt` being a directory storage):
# qm stop 101; qm destroy 101; qm create 101 --scsi0 local-lvm:1; qm start 101; timeout 1 qm disk move 101 scsi0 opt; qm disk move 101 scsi0 opt
Logical volume "vm-101-disk-0" successfully removed.
Logical volume "vm-101-disk-0" created.
Logical volume pve/vm-101-disk-0 changed.
scsi0: successfully created disk 'local-lvm:vm-101-disk-0,size=1G'
create full clone of drive scsi0 (local-lvm:vm-101-disk-0)
Formatting '/opt/images/101/vm-101-disk-0.raw', fmt=raw size=1073741824 preallocation=off
drive mirror is starting for drive-scsi0
mirror-scsi0: transferred 85.0 MiB of 1.0 GiB (8.30%) in 0s
mirror-scsi0: Cancelling block job
mirror-scsi0: Done.
storage migration failed: block job (mirror) error: interrupted by signal
create full clone of drive scsi0 (local-lvm:vm-101-disk-0)
Formatting '/opt/images/101/vm-101-disk-0.raw', fmt=raw size=1073741824 preallocation=off
storage migration failed: adding blockdev 'zc34a13b971104aab98614370f1a40f' failed : VM 101 qmp command 'blockdev-add' failed - Duplicate nodes with node-name='zc34a13b971104aab98614370f1a40f'
With this patch:
# qm stop 101; qm destroy 101; qm create 101 --scsi0 local-lvm:1; qm start 101; timeout 1 qm disk move 101 scsi0 opt; qm disk move 101 scsi0 opt
Logical volume "vm-101-disk-0" successfully removed.
Logical volume "vm-101-disk-0" created.
Logical volume pve/vm-101-disk-0 changed.
scsi0: successfully created disk 'local-lvm:vm-101-disk-0,size=1G'
create full clone of drive scsi0 (local-lvm:vm-101-disk-0)
Formatting '/opt/images/101/vm-101-disk-0.raw', fmt=raw size=1073741824 preallocation=off
drive mirror is starting for drive-scsi0
mirror-scsi0: transferred 142.0 MiB of 1.0 GiB (13.87%) in 0s
mirror-scsi0: Cancelling block job
mirror-scsi0: Done.
storage migration failed: block job (mirror) error: interrupted by signal
create full clone of drive scsi0 (local-lvm:vm-101-disk-0)
Formatting '/opt/images/101/vm-101-disk-0.raw', fmt=raw size=1073741824 preallocation=off
drive mirror is starting for drive-scsi0
mirror-scsi0: transferred 13.0 MiB of 1.0 GiB (1.27%) in 0s
mirror-scsi0: transferred 1.0 GiB of 1.0 GiB (100.00%) in 1s, ready
all 'mirror' jobs are ready
mirror-scsi0: Completing block job...
mirror-scsi0: Completed successfully.
mirror-scsi0: mirror-job finished
So consider this
Tested-by: Friedrich Weber <f.weber@proxmox.com>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-07-31 9:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-31 9:09 Fiona Ebner
2025-07-31 9:16 ` Friedrich Weber [this message]
2025-07-31 9:39 ` [pve-devel] applied: " Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b9de7ef0-f8d8-4302-8dea-84f3da9c664d@proxmox.com \
--to=f.weber@proxmox.com \
--cc=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox