Bug 2041886

Summary: virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with incorrect IP address
Product: Red Hat Enterprise Linux 9 Reporter: Xiaodai Wang <xiaodwan>
Component: virt-v2vAssignee: Richard W.M. Jones <rjones>
Status: CLOSED ERRATA QA Contact: Vera <vwu>
Severity: medium Docs Contact:
Priority: low    
Version: 9.0CC: jsuchane, juzhou, kkiwi, lersek, mxie, mzhan, ptoscano, rjones, tyan, tzheng, xiaodwan, zili
Target Milestone: rcKeywords: Regression, Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-v2v-1.45.97-2.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1839917 Environment:
Last Closed: 2022-05-17 13:42:09 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: 1839917    
Bug Blocks:    

Description Xiaodai Wang 2022-01-18 13:12:10 UTC
Clone it to rhel9.

+++ This bug was initially created as a clone of Bug #1839917 +++

Description of problem:
There is no info "Opening the source -i libvirt -ic vpx://..." shown if any IP is wrong in vpx:// URL during v2v conversion

Version-Release number of selected component (if applicable):
virt-v2v-1.42.0-3.module+el8.3.0+6497+b190d2a5.x86_64
libguestfs-1.42.0-1.module+el8.3.0+6496+d39ac712.x86_6

How reproducible:
100%

Steps to Reproduce:
Scenario1:
1.1 Convert a guest from VMware by v2v but write incorrect vCenter IP in command line, found there is no info output more than 2mins until the conversion is failed with error, besides, there is no debug info "Opening the source -i libvirt -ic vpx://root@......" shown during conversion

1.1.1 # virt-v2v -ic vpx://root.198.169/data/10.73.199.216/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -ip /home/passwd -o null
virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_ESX:
internal error: Could not find compute resource specified in
'/data/10.73.199.216/'

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

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


1.1.2 Add -v -x to convert again, can see the error info is reported after more than 2mins
# virt-v2v -ic vpx://root.198.168/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -ip /home/passwd -o null -v -x |& ts
May 23 05:48:55 virt-v2v: virt-v2v 1.42.0rhel=8,release=3.module+el8.3.0+6497+b190d2a5 (x86_64)
May 23 05:48:55 libvirt version: 6.3.0
May 23 05:51:05 virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_ESX:
May 23 05:51:05 internal error: curl_easy_perform() returned an error: Couldn't connect to
May 23 05:51:05 server (7) : Failed to connect to 10.73.198.168 port 443: Connection timed
May 23 05:51:05 out
May 23 05:51:05 rm -rf '/var/tmp/null.aRkVgg'


Scenario2:
2.1 Convert a guest from VMware by v2v but write incorrect ESXi IP in command line, v2v will report the error info immediately but there is also no debug info "Opening the source -i libvirt -ic vpx://root@......" shown

# virt-v2v -ic vpx://root.198.169/data/10.73.199.216/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -ip /home/passwd -o null -v -x |& ts
May 23 06:01:12 virt-v2v: virt-v2v 1.42.0rhel=8,release=3.module+el8.3.0+6497+b190d2a5 (x86_64)
May 23 06:01:12 libvirt version: 6.3.0
May 23 06:01:12 virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_ESX:
May 23 06:01:12 internal error: Could not find compute resource specified in
May 23 06:01:12 '/data/10.73.199.216/'
May 23 06:01:12 rm -rf '/var/tmp/null.kllWxq'


Scenario3:
3.1 Convert a guest from VMware by v2v and make sure vpx:// URL is correct, debug info "Opening the source -i libvirt -ic vpx://root@......" is shown during conversion

# virt-v2v -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -ip /home/passwd -o null -v -x |& ts
May 23 06:27:46 virt-v2v: virt-v2v 1.42.0rhel=8,release=3.module+el8.3.0+6497+b190d2a5 (x86_64)
May 23 06:27:46 libvirt version: 6.3.0
May 23 06:27:46 [   0.2] Opening the source -i libvirt -ic vpx://root.198.169:443/data/10.73.199.217/?no_verify=1 esx7.0-win2019-x86_64 -it vddk  -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78
May 23 06:27:46 libvirt xml is:
......


Actual results:
As above description

Expected results:
There is info "Opening the source -i libvirt -ic vpx://..." shown immediately even if any IP is wrong in vpx:// URL during v2v conversion

Additional info:
Can't reproduce the bug on rhel8.2 with below builds:
virt-v2v-1.40.2-22.module+el8.2.0+6029+618ef2ec.x86_64
libguestfs-1.40.2-22.module+el8.2.0+6029+618ef2ec.x86_64


1.Convert a guest from VMware by v2v but write incorrect vCenter IP in command line, info "Opening the source -i libvirt -ic vpx://..." is shown immediately 

# virt-v2v -ic vpx://root.198.168/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -ip /home/passwd -o null -v -x |& ts
May 23 18:03:30 virt-v2v: libguestfs 1.40.2rhel=8,release=22.module+el8.2.0+6029+618ef2ec,libvirt (x86_64)
May 23 18:03:30 libvirt version: 6.0.0
May 23 18:03:30 nbdkit --help
May 23 18:03:30 nbdkit --dump-config
May 23 18:03:30 [   0.1] Opening the source -i libvirt -ic vpx://root.198.168/data/10.73.199.217/?no_verify=1 esx7.0-win2019-x86_64 -it vddk  -io vddk-libdir=/home/vmware-vix-disklib-distrib -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78
May 23 18:05:39 libvirt: ESX Driver error : internal error: curl_easy_perform() returned an error: Couldn't connect to server (7) : Failed to connect to 10.73.198.168 port 443: Connection timed out
May 23 18:05:39 virt-v2v: error: internal error: invalid argument: cannot open libvirt
May 23 18:05:39 connection ‘vpx://root.198.168/data/10.73.199.217/?no_verify=1’
May 23 18:05:39 rm -rf '/var/tmp/null.XspFvY'

--- Additional comment from Pino Toscano on 2020-05-26 06:24:42 UTC ---

Patch proposed upstream:
https://www.redhat.com/archives/libguestfs/2020-May/msg00086.html

--- Additional comment from Pino Toscano on 2020-05-26 10:04:38 UTC ---

(In reply to Pino Toscano from comment #1)
> Patch proposed upstream:
> https://www.redhat.com/archives/libguestfs/2020-May/msg00086.html

Fixed upstream with
https://github.com/libguestfs/virt-v2v/commit/86d87563ee03e86ca9abdcad4f674af66a883006

Comment 5 Laszlo Ersek 2022-01-19 13:17:23 UTC
So I'm not sure what the ask is here: the connection to time out earlier, or that virt-v2v print the URL before it starts connecting?

The former is NOTABUG for virt-v2v (see comment 3), and the latter is already solved in RHEL9 (by inheriting upstream commit 86d87563ee03 ("-i libvirt: print URI without connecting (RHBZ#1839917)", 2020-05-26)), so that would be CURRENTRELEASE or WORKSFORME I guess.

Comment 8 Richard W.M. Jones 2022-01-19 13:38:51 UTC
Patch posted:
https://listman.redhat.com/archives/libguestfs/2022-January/msg00131.html

Comment 12 Vera 2022-01-26 11:06:44 UTC
Verified with the versions:
virt-v2v-1.45.97-2.el9.x86_64
libguestfs-1.46.1-2.el9.x86_64

Steps:
Scenario 1:
1. Convert a guest from VMware by v2v but write incorrect vCenter IP in command line
1.1.1 # virt-v2v -ic vpx://root.198.169/data/10.73.199.216/?no_verify=1 -it vddk -io vddk-libdir=/root/vddk_libdir/latest -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -ip /v2v-ops/esxpw  -o null
[   0.0] Setting up the source: -i libvirt -ic vpx://root.198.169/data/10.73.199.216/?no_verify=1 -it vddk esx7.0-win2019-x86_64
virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_ESX: 
internal error: Could not find compute resource specified in 
'/data/10.73.199.216/'

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

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


1.1.2 Add -v -x to convert again, can see the error info is reported instantly
# virt-v2v -ic vpx://root.198.168/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/root/vddk_libdir/latest -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 esx7.0-win2019-x86_64 -o null -v -x|& ts
Jan 26 05:44:56 virt-v2v: virt-v2v 1.45.97rhel=9,release=2.el9 (x86_64)
Jan 26 05:44:56 libvirt version: 8.0.0
Jan 26 05:44:56 [   0.0] Setting up the source: -i libvirt -ic vpx://root.198.168/data/10.73.199.217/?no_verify=1 -it vddk esx7.0-win2019-x86_64

Jan 26 05:45:12 Enter root's password for 10.73.198.168: virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_NONE: 
Jan 26 05:45:12 An error occurred, but the cause is unknown
Jan 26 05:45:12 rm -rf '/tmp/v2v.ku8xQ3'


Scenario2:
2.1 Convert a guest from VMware by v2v but write incorrect ESXi IP in command line
# virt-v2v -ic vpx://root.198.169/data/10.73.199.216/?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 esx7.0-win2019-x86_64 -ip /home/esxpw -o null -v -x |& ts
Jan 26 05:56:27 virt-v2v: virt-v2v 1.45.97rhel=9,release=2.el9 (x86_64)
Jan 26 05:56:27 libvirt version: 8.0.0
Jan 26 05:56:27 [   0.0] Setting up the source: -i libvirt -ic vpx://root.198.169/data/10.73.199.216/?no_verify=1 -it vddk esx7.0-win2019-x86_64
Jan 26 05:56:31 virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_ESX: 
Jan 26 05:56:31 internal error: HTTP response code 500 for call to 'Login'. Fault: 
Jan 26 05:56:31 ServerFaultCode - Cannot complete login due to an incorrect user name or 
Jan 26 05:56:31 password.
Jan 26 05:56:31 rm -rf '/tmp/v2v.ZdZz9S'


Scenario3:
3.1 Convert a guest from VMware by v2v and make sure vpx:// URL is correct
# 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 esx7.0-win2019-x86_64 -ip /home/esxpw -o null -v -x |& ts
Jan 26 05:57:37 virt-v2v: virt-v2v 1.45.97rhel=9,release=2.el9 (x86_64)
Jan 26 05:57:37 libvirt version: 8.0.0
Jan 26 05:57:37 [   0.0] Setting up the source: -i libvirt -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk esx7.0-win2019-x86_64
Jan 26 05:57:41 virt-v2v: error: exception: libvirt: VIR_ERR_INTERNAL_ERROR: VIR_FROM_ESX: 
Jan 26 05:57:41 internal error: HTTP response code 500 for call to 'Login'. Fault: 
Jan 26 05:57:41 ServerFaultCode - Cannot complete login due to an incorrect user name or 
Jan 26 05:57:41 password.
Jan 26 05:57:41 rm -rf '/tmp/v2v.MGxh6N'


Moving to verified.

Comment 14 errata-xmlrpc 2022-05-17 13:42:09 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