Bug 2034240

Summary: calling "get_disk_allocated" in "create_ovf" breaks the rhv-upload output plugin
Product: Red Hat Enterprise Linux 9 Reporter: Laszlo Ersek <lersek>
Component: virt-v2vAssignee: Laszlo Ersek <lersek>
Status: CLOSED ERRATA QA Contact: mxie <mxie>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: juzhou, lersek, mxie, rjones, tyan, tzheng, vwu, xiaodwan
Target Milestone: rcKeywords: Regression, TestBlocker, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-v2v-1.45.95-3.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-05-17 13:41:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Laszlo Ersek 2021-12-20 13:30:10 UTC
*** Description of problem:

The fix for bug 2027598 (affecting the old RHV output plugin "rhv")
causes a regression with the more modern RHV output plugin "rhv-upload".

https://listman.redhat.com/archives/libguestfs/2021-December/msg00189.html

> [  74.2] Creating output metadata
> python3 '/tmp/v2v.WMq8Tk/rhv-upload-finalize.py'
> '/tmp/v2v.WMq8Tk/params6.json' finalizing transfer
> b03fe3ba-a4ff-4634-a0a0-10b3daba3cc2
> ...
> transfer b03fe3ba-a4ff-4634-a0a0-10b3daba3cc2 finalized in 2.118
> seconds
> ...
> nbdkit: debug: accepted connection
> ...
> nbdkit: python[4]: debug: python: close
> virt-v2v: error: exception: NBD.Error("nbd_block_status: request out
> of bounds: Invalid argument", 22)

*** Version-Release number of selected component (if applicable):
virt-v2v-1.45.95-1.el9

The regression is from upstream commit a2a4f7a09996 ("lib/create_ovf:
populate "actual size" attributes again", 2021-12-10).

Comment 1 Laszlo Ersek 2021-12-20 13:57:12 UTC
[v2v PATCH] output_rhv: restrict block status collection to the old RHV output
Message-Id: <20211220135640.12436-1-lersek>
https://listman.redhat.com/archives/libguestfs/2021-December/msg00211.html

Comment 2 Laszlo Ersek 2021-12-22 09:36:39 UTC
(In reply to Laszlo Ersek from comment #1)
> [v2v PATCH] output_rhv: restrict block status collection to the old RHV output
> Message-Id: <20211220135640.12436-1-lersek>
> https://listman.redhat.com/archives/libguestfs/2021-December/msg00211.html

Merged upstream as commit 07b12fe99fb9.

Comment 3 Laszlo Ersek 2021-12-23 08:16:49 UTC
*** Bug 2035153 has been marked as a duplicate of this bug. ***

Comment 10 mxie@redhat.com 2021-12-27 15:50:00 UTC
Test the bug with below builds:
virt-v2v-1.45.95-3.el9.x86_64
libguestfs-1.46.1-2.el9.x86_64
guestfs-tools-1.46.1-6.el9.x86_64
libvirt-libs-7.10.0-1.el9.x86_64
qemu-img-6.2.0-1.el9.x86_64
nbdkit-server-1.28.3-3.el9.x86_64
libnbd-1.10.2-1.el9.x86_64

Steps:
1.Convert a guest from ESXi7.0 to rhv4.4 via rhv-upload by v2v
1.1 # virt-v2v -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk7.0.2 -io  vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78  -ip /home/passwd  -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api  -op /home/rhvpasswd  -os nfs_data -b ovirtmgmt esx7.0-rhel8.5-x86_64
[   1.8] Opening the source
[   9.0] Inspecting the source
[  18.7] Checking for sufficient free disk space in the guest
[  18.7] Converting Red Hat Enterprise Linux 8.5 (Ootpa) to run on KVM
virt-v2v: This guest has virtio drivers installed.
[ 120.8] Mapping filesystem data to avoid copying unused and blank areas
[ 121.8] Closing the overlay
[ 122.1] Assigning disks to buses
[ 122.1] Checking if the guest needs BIOS or UEFI to boot
[ 131.3] Copying disk 1/1
█ 100% [****************************************]
[ 647.5] Creating output metadata
[ 710.9] Finishing off

1.2 Check guest after v2v conversion, checkpoints of guest are passed

2.Convert a guest from ESXi6.7 to rhv4.4 via rhv-upload by v2v
2.1 #  virt-v2v -ic vpx://root.73.141/data/10.73.75.219/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk7.0.2 -io vddk-thumbprint=1F:97:34:5F:B6:C2:BA:66:46:CB:1A:71:76:7D:6B:50:1E:03:00:EA  -ip /home/passwd  -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api  -op /home/rhvpasswd  -os nfs_data -b ovirtmgmt esx6.7-win11-x86_64
[   2.1] Opening the source
[   7.7] Inspecting the source
[  14.8] Checking for sufficient free disk space in the guest
[  14.8] Converting Windows 10 Enterprise to run on KVM
virt-v2v: This guest has virtio drivers installed.
[  19.2] Mapping filesystem data to avoid copying unused and blank areas
[  20.7] Closing the overlay
[  21.0] Assigning disks to buses
[  21.0] Checking if the guest needs BIOS or UEFI to boot
[  41.1] Copying disk 1/1
█ 100% [****************************************]
[1187.4] Creating output metadata
[1251.0] Finishing off

2.2 Check guest after v2v conversion, checkpoints of guest are passed

Result:
   The bug has been fixed with virt-v2v-1.45.95-3.el9.x86_64

Comment 12 mxie@redhat.com 2022-01-20 02:20:54 UTC
Verify the bug with below builds:
virt-v2v-1.45.97-1.el9.x86_64
libguestfs-1.46.1-2.el9.x86_64
guestfs-tools-1.46.1-6.el9.x86_64
libvirt-libs-8.0.0-1.el9.x86_64
qemu-img-6.2.0-4.el9.x86_64
nbdkit-1.28.4-2.el9.x86_64
libnbd-1.10.3-1.el9.x86_64


Steps:
1.Convert a guest from ESXi7.0 to rhv4.4 via rhv-upload by v2v
# virt-v2v -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk7.0.2 -io  vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78  -ip /home/passwd  -o rhv-upload -of qcow2 -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api  -op /home/rhvpasswd  -os nfs_data -b ovirtmgmt  esx7.0-win2019-x86_64
[   1.8] Opening the source
[   6.9] Inspecting the source
[  12.5] Checking for sufficient free disk space in the guest
[  12.5] Converting Windows Server 2019 Standard to run on KVM
virt-v2v: This guest has virtio drivers installed.
[  23.0] Mapping filesystem data to avoid copying unused and blank areas
[  24.2] Closing the overlay
[  24.5] Assigning disks to buses
[  24.5] Checking if the guest needs BIOS or UEFI to boot
[  45.4] Copying disk 1/1
█ 100% [****************************************]
[2466.7] Creating output metadata
[2529.9] Finishing off


2.Convert guest from ESXi6.7 to rhv4.4 via rhv-uplod by v2v
# virt-v2v -i vmx -it ssh ssh://root.75.219/vmfs/volumes/esx6.7-matrix/esx6.7-rhel8.5-x86_64/esx6.7-rhel8.5-x86_64.vmx -o rhv-upload -of qcow2 -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -op /home/rhvpasswd  -os nfs_data  -b ovirtmgmt  -ip /home/esxpw
[   1.7] Opening the source
[  10.1] Inspecting the source
[  24.4] Checking for sufficient free disk space in the guest
[  24.4] Converting Red Hat Enterprise Linux 8.5 (Ootpa) to run on KVM
virt-v2v: This guest has virtio drivers installed.
[ 162.1] Mapping filesystem data to avoid copying unused and blank areas
[ 164.6] Closing the overlay
[ 164.9] Assigning disks to buses
[ 164.9] Checking if the guest needs BIOS or UEFI to boot
[ 177.8] Copying disk 1/1
█ 100% [****************************************]
[ 890.3] Creating output metadata
[ 953.4] Finishing off


3. Check the guest after v2v conversion, the checkpoints of guest are passed except bug2042479

Result:
   The bug has been fixed, move bug from ON_QA to VERIFIED

Comment 14 errata-xmlrpc 2022-05-17 13:41:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (new packages: virt-v2v), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:2566