Bug 619289

Summary: virt-v2v stuck on remote connection when the remote host only has rDNS
Product: Red Hat Enterprise Linux 6 Reporter: Rita Wu <rwu>
Component: virt-v2vAssignee: Matthew Booth <mbooth>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.0CC: cwei, moli, mshao
Target Milestone: rcKeywords: RHELNAK
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 619300 (view as bug list) Environment:
Last Closed: 2010-07-29 10:36:34 UTC Type: ---
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:    
Bug Blocks: 619300    
Attachments:
Description Flags
strace.log none

Description Rita Wu 2010-07-29 07:39:26 UTC
Created attachment 435205 [details]
strace.log

Description of problem:
While running virt-v2v with xen+ssh remote connection, it just stuck there and didn't do anything.


[root@dhcp-66-92-183 ~]# virsh -c xen+ssh://10.66.93.194 list --all
 Id Name                 State
----------------------------------
  0 Domain-0             running
  - 2008_6               shut off
  - 2008R2-3             shut off
  - win2003              shut off
  - win2003_1            shut off
  - win2008R2            shut off
  - win2k3_64            shut off
  - win2k3_64_1          shut off
  - xen-rhel54-64-pv-raw.img shut off

 (have configured ssh keys authentication )
[root@dhcp-66-92-183 ~]# virt-v2v -ic xen+ssh://10.66.93.194 -o rhev -osd 10.66.90.115:/vol/v2vrwu/rwuv2v xen-rhel54-64-pv-raw.img
<hange here, nothing displayed, conversion didn't begin>

here is part of the strace log, please refer to the attachment for detail.
------------------------------------
[...]
lseek(13, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)
fcntl(12, F_SETFD, FD_CLOEXEC)          = 0
fcntl(13, F_SETFD, FD_CLOEXEC)          = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7ff9e2dbc9d0) = 17412
close(7)                                = 0
close(11)                               = 0
close(13)                               = 0
select(16, [10 12], NULL, NULL, NULL)   = 1 (in [12])
read(12, "reverse mapping checking getaddr"..., 4096) = 120
read(12,
------------------------------------

virt-v2v stuck on "read(12,", and there is some error message which should comes from ssh connection "reverse mapping checking getaddr"...


[root@dhcp-66-92-183 ~]# ps aux | grep virt-v2v
root     17406  0.6  0.0   4308   788 pts/5    S+   12:53   0:00 strace -o /tmp/ssh.log virt-v2v -ic xen+ssh://10.66.93.194 -o rhev -osd 10.66.90.115:/vol/v2vrwu/rwuv2v xen-rhel54-64-pv-raw.img
root     17407  1.9  0.4 279656 28036 pts/5    S+   12:53   0:00 /usr/bin/perl /usr/bin/virt-v2v -ic xen+ssh://10.66.93.194 -o rhev -osd 10.66.90.115:/vol/v2vrwu/rwuv2v xen-rhel54-64-pv-raw.img
root     17437  0.0  0.0 103148   828 pts/4    S+   12:53   0:00 grep virt-v2v

[root@dhcp-66-92-183 ~]# ll /proc/17407/fd/12
lr-x------. 1 root root 64 Jul 29 12:54 /proc/17407/fd/12 -> pipe:[141736]

[root@dhcp-66-92-183 ~]# lsof | grep 141736
virt-v2v  17407      root   12r     FIFO                0,8      0t0     141736 pipe
ssh       17412      root    2w     FIFO                0,8      0t0     141736 pipe
ssh       17412      root   10w     FIFO                0,8      0t0     141736 pipe


Our dns configuration only have the dns reverse name resolution for this host:

[root@dhcp-66-92-183 ~]# host 10.66.93.194
194.93.66.10.in-addr.arpa domain name pointer dhcp-93-194.nay.redhat.com.
[root@dhcp-66-92-183 ~]# host dhcp-93-194.nay.redhat.com
Host dhcp-93-194.nay.redhat.com not found: 3(NXDOMAIN)

add such line to /etc/hosts can make virt-v2v happy and do conversion as expected:
------------------------------------
--- old/etc/hosts        2010-07-29 13:00:36.205836872 +0800
+++ new/etc/hosts        2010-07-29 13:00:54.113089412 +0800
@@ -1,3 +1,4 @@
 10.66.92.183        dhcp-66-92-183.nay.redhat.com
 127.0.0.1        localhost.localdomain        localhost
 ::1        dhcp-66-70-198.nay.redhat.com        localhost6.localdomain6        localhost6
+10.66.93.194        dhcp-93-194.nay.redhat.com
------------------------------------

Version-Release number of selected component (if applicable):
virt-v2v-0.6.1-2.el6.x86_64
libguestfs-1.2.7-1.21.el6.x86_64

How reproducible:
always

Steps to Reproduce:

1.Make sure the Xen host with only rDNS
2.# virt-v2v -ic xen+ssh://xen_host -o rhev -osd 10.66.xx.xx:/vol/export domain_name 

Actual results:
V2V doesn't begin conversion without any error msg, so it hangs there.

Expected results:
V2V can convert VMs via xen+ssh even the host with only rDNS, or at least pop up error MSG.

Additional info:

Comment 2 RHEL Program Management 2010-07-29 08:07:38 UTC
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release.

** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **

Comment 3 Matthew Booth 2010-07-29 09:09:57 UTC
I can't think of anything that virt-v2v does which might cause this. I strongly suspect it's just an SSH configuration quirk.

The first thing I'd try is disabling GSSAPI for the connection. Can you please add the following lines to ~/.ssh/config (create the file if necessary):

Host 10.66.93.194
GSSAPIAuthentication no

and re-run the test.

Comment 4 Rita Wu 2010-07-29 10:26:37 UTC
(In reply to comment #3)
> I can't think of anything that virt-v2v does which might cause this. I strongly
> suspect it's just an SSH configuration quirk.
> 
> The first thing I'd try is disabling GSSAPI for the connection. Can you please
> add the following lines to ~/.ssh/config (create the file if necessary):
> 
> Host 10.66.93.194
> GSSAPIAuthentication no
> 
> and re-run the test.    

After configuring ~/.ssh/config, v2v can convert a guest from remote machine successfully. In that case, what about popping up message about the problem/soution, otherwise users are waiting without any hints.

Comment 5 Matthew Booth 2010-07-29 10:36:34 UTC
Unfortunately there's no way we can reasonably detect this before it happens, which means we have no opportunity to display a warning to the user. Even if the connection does hang, there are so many potential reasons for it we couldn't reasonably diagnose it without writing a massive general purpose SSH diagnosis library. We can't even just check for GSSAPIAuthentication being disabled because many organisations (Red Hat, for example) use it.

Misconfigured DNS can cause all sorts of problems. This one is an issue with SSH, so I'm going to close it.

Comment 6 Mohua Li 2010-07-29 10:58:10 UTC
i think it's better to added this to the document, when user met such problem, it will be much helpful, as when we met this problem, it also cause us some time to debug. 

two points could be added to the document when remote connection get no any response(no data transfer after a long time),

1, check the DNS setting, 
check the reverse/positive dns resolve

2, check the SSH setting, 
 ~/.ssh/config (create the file if necessary):
Host 10.66.93.194
GSSAPIAuthentication no

Comment 7 Matthew Booth 2010-07-29 11:11:59 UTC
This is just a generic SSH issue. If we start documenting things like this explicitly for virt-v2v, we risk making the documentation unreadable due to misconfiguration warnings. We certainly can't just recommend disabling GSSAPI. I'd leave it out.