Bug 2143889

Summary: nbdkit: error: /home/vddk8.0.0/lib64/libvixDiskLib.so.7: cannot open shared object file: No such file or directory
Product: Red Hat Enterprise Linux 9 Reporter: mxie <mxie>
Component: nbdkitAssignee: Richard W.M. Jones <rjones>
Status: CLOSED ERRATA QA Contact: mxie <mxie>
Severity: high Docs Contact:
Priority: high    
Version: 9.2CC: chhu, eblake, gveitmic, hhan, hongzliu, juzhou, lersek, lmen, mzhan, nashok, rjones, tyan, tzheng, virt-maint, vwu, xiaodwan, ymankad
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: ---Flags: pm-rhel: mirror+
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: nbdkit-1.32.5-1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2148498 2148499 (view as bug list) Environment:
Last Closed: 2023-05-09 07:47:50 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:
Bug Depends On: 2135765    
Bug Blocks: 2148498, 2148499    

Description mxie@redhat.com 2022-11-18 08:56:35 UTC
Description of problem:
Virt-v2v can't convert guest from VMware via vddk8.0.0

Version-Release number of selected component (if applicable):
virt-v2v-2.0.7-6.el9.x86_64
libguestfs-1.48.4-3.el9.x86_64
guestfs-tools-1.48.2-7.el9.x86_64
libvirt-libs-8.9.0-2.el9.x86_64
qemu-img-7.1.0-5.el9.x86_64
nbdkit-server-1.30.8-1.el9.x86_64
libnbd-1.12.6-1.el9.x86_64
VMware-vix-disklib-8.0.0-20521017.x86_64


How reproducible:
90%

Steps to Reproduce:
1.Convert a guest from ESXi7.0.3 via vddk8.0.0 by v2v
#  virt-v2v -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io  vddk-thumbprint=09:9E:54:CF:C3:36:11:9D:7D:B6:45:E0:85:74:4D:DB:CE:24:7B:46  -ip /home/passwd  -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api  -op /home/rhvpasswd esx7.0-rhel8.7-x86_64
[   0.1] Setting up the source: -i libvirt -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk esx7.0-rhel8.7-x86_64
nbdkit: error: /home/vddk8.0.0/lib64/libvixDiskLib.so.7: cannot open shared object file: No such file or directory

If 'lib64/libvixDiskLib.so.7' is located on a non-standard path you may need to
set libdir=/path/to/vmware-vix-disklib-distrib.

See nbdkit-vddk-plugin(1) man page section "LIBRARY LOCATION" for details.
virt-v2v: error: nbdkit did not start up.  There may be errors printed by 
nbdkit above.

If the messages above are not sufficient to diagnose the problem then add 
the ‘virt-v2v -v -x’ options and examine the debugging output 
carefully.

If reporting bugs, run virt-v2v with debugging enabled and include the 
complete output:

  virt-v2v -v -x [...]


Actual results:
As above description

Expected results:
Virt-v2v can convert guest from VMware via vddk8.0.0

Additional info:

Comment 2 Richard W.M. Jones 2022-11-18 09:04:08 UTC
The error is:
nbdkit: error: /home/vddk8.0.0/lib64/libvixDiskLib.so.7: cannot open shared object file: No such file or directory

nbdkit encodes a list of VDDK library names:

https://gitlab.com/nbdkit/nbdkit/-/blob/b1ba5275e50ae2d97035e177b214080892c308b1/plugins/vddk/vddk.c#L406

and I guess VDDK 8 uses .so.8.

(It's not as simple as just extending this list, since various other
parts of the code do things based on SONAME).

Comment 3 Richard W.M. Jones 2022-11-18 09:53:07 UTC
Upstream fix was pretty simple in the end:
https://gitlab.com/nbdkit/nbdkit/-/commit/dbe12ed499baeea94d603db55cad9e971e0ebcf0

Plan to pick this up in the rebase (bug 2135765).

Comment 4 Richard W.M. Jones 2022-11-18 09:54:25 UTC
$ nbdkit vddk libdir=~/tmp/vddk-8.0.0/vmware-vix-disklib-distrib --dump-plugin | grep ^vddk
vddk_default_libdir=/usr/lib64/vmware-vix-disklib
vddk_has_nfchostport=1
vddk_library_version=8
vddk_dll=/home/rjones/tmp/vddk-8.0.0/vmware-vix-disklib-distrib/lib64/libvixDiskLib.so.8.0.0

(Note library version == 8)

Comment 12 mxie@redhat.com 2022-12-07 07:38:55 UTC
Test the bug with below builds:
virt-v2v-2.0.7-7.el9.x86_64
libguestfs-1.48.4-4.el9.x86_64
guestfs-tools-1.48.2-8.el9.x86_64
nbdkit-server-1.30.8-2.el9_1.x86_64
libnbd-1.12.6-1.el9.x86_64
virtio-win-1.9.30-0.el9_1.noarch



Steps:

Scenario1: convert a guest from ESXi8.0 via vddk8.0.0 by v2v

1.1 # virt-v2v -ic vpx://root.212.149/data/10.73.212.36/?no_verify=1  -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=D1:03:96:7E:11:3D:7C:4C:B6:50:28:1B:63:74:B5:40:5F:9D:9F:94 -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  esx8.0-rhel8.8-x86_64

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


Scenario2: convert guests from ESXi7.0 via vddk8.0.0 by v2v

2.1 # virt-v2v -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io  vddk-thumbprint=09:9E:54:CF:C3:36:11:9D:7D:B6:45:E0:85:74:4D:DB:CE:24:7B:46  -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 esx7.0-win11-x86_64

2.2 Check guest after finishing conversion, checkpoints of guests are passed


Scenario3: Convert guests from ESXi6.7 via vddk8.0.0 by v2v

3.1 # virt-v2v -ic esx://root.75.219/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=62:44:2C:4F:D0:21:0B:0D:85:7B:5D:5D:64:F8:C6:2F:4F:F0:9D:33 -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -os nfs_data -op /home/rhvpasswd -ip /home/esxpw esx6.7-win2022-x86_64 -b ovirtmgmt -of qcow2
3.2 Check guest after finishing conversion, checkpoints of guest are passed


Scenario4: convert guests from ESXi6.5 via vddk8.0.0 by v2v

4.1 # virt-v2v -ic vpx://root.74.72/data/10.73.196.89/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=24:40:7E:C8:C8:1F:9C:DF:E4:E0:48:D0:9E:25:64:94:64:AF:C6:8C  -ip /home/passwd  -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -os nfs_data  -op /home/rhvpasswd esx6.5-rhel9.2-x86_64


4.2 Check guest after finishing conversion, checkpoints of guest are passed


Result:
  The bug has been fixed.

Comment 21 mxie@redhat.com 2023-01-10 14:20:33 UTC
Verify the bug with below builds:
virt-v2v-2.0.7-7.el9.x86_64
libguestfs-1.48.4-4.el9.x86_64
guestfs-tools-1.48.2-8.el9.x86_64
nbdkit-server-1.32.5-3.el9.x86_64
libnbd-1.14.2-1.el9.x86_64
virtio-win-1.9.32-0.el9_1.noarch


Steps:

Scenario1: convert a guest from ESXi8.0 via vddk8.0.0 by v2v

1.1 # virt-v2v -ic vpx://root.212.149/data/10.73.212.36/?no_verify=1  -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=D1:03:96:7E:11:3D:7C:4C:B6:50:28:1B:63:74:B5:40:5F:9D:9F:94 -ip /home/passwd esx8.0-rhel9.2-x86_64

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


Scenario2: convert guests from ESXi7.0 via vddk8.0.0 by v2v

2.1 # virt-v2v -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io  vddk-thumbprint=09:9E:54:CF:C3:36:11:9D:7D:B6:45:E0:85:74:4D:DB:CE:24:7B:46  -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 esx7.0-win2022-x86_64

2.2 Check guest after finishing conversion, checkpoints of guests are passed


Scenario3: Convert guests from ESXi6.7 via vddk8.0.0 by v2v

3.1 # virt-v2v -ic esx://root.75.219/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=62:44:2C:4F:D0:21:0B:0D:85:7B:5D:5D:64:F8:C6:2F:4F:F0:9D:33 -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -os nfs_data -op /home/rhvpasswd -ip /home/esxpw esx6.7-win10-x86_64 -b ovirtmgmt -of qcow2

3.2 Check guest after finishing conversion, checkpoints of guest are passed


Scenario4: convert guests from ESXi6.5 via vddk8.0.0 by v2v

4.1 # virt-v2v -ic vpx://root.74.72/data/10.73.196.89/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=24:40:7E:C8:C8:1F:9C:DF:E4:E0:48:D0:9E:25:64:94:64:AF:C6:8C  -ip /home/passwd  -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -os nfs_data  -op /home/rhvpasswd esx6.5-rhel8.8-x86_64

4.2 Check guest after finishing conversion, checkpoints of guest are passed


Result:
  No new problems were found, move the bug from ON_QA to VERIFIED

Comment 23 errata-xmlrpc 2023-05-09 07:47:50 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 (nbdkit bug fix and enhancement update), 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/RHBA-2023:2347