Bug 870383

Summary: virt-manager cannot open console through IPV6.
Product: Red Hat Enterprise Linux 6 Reporter: Geyang Kong <gkong>
Component: virt-managerAssignee: Giuseppe Scrivano <gscrivan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.4CC: cwei, gscrivan, lcui, mjenner, mkletzan, mzhan, rbalakri, tzheng, zpeng
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: virt-manager-0.9.0-22.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1046572 (view as bug list) Environment:
Last Closed: 2014-10-14 06:25:39 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:    
Bug Blocks: 1046572, 1094631    

Description Geyang Kong 2012-10-26 10:27:28 UTC
Description of problem:
  virt-manager cannot open console through IPV6.

Version-Release number of selected component (if applicable):
virt-manager-0.9.0-15.el6.x86_64

Reproduce steps:
1. Prepare 2 hosts, make sure they can contact with each other through ipv6.
2. Select a hosts as a server and install a guest on it.
3. Modify the guest's xml, make sure its graphic device is listening to ::
4. Start the guest.
5. From the other host, add a qemu+ssh connection through ipv6 to the server.
6. Open console through virt-manager.

Actual results:
1. Console form cannot be opened. I can got following debug information by adding --debug option when connect to a VNC guest.
2012-10-26 18:10:44,937 (connection:578): Connection managed save support: True
2012-10-26 18:10:45,042 (connection:160): Using libvirt API for netdev enumeration
2012-10-26 18:10:45,043 (connection:200): Using libvirt API for mediadev enumeration
2012-10-26 18:10:46,823 (engine:471): window counter incremented to 2
2012-10-26 18:10:46,826 (console:1078): Starting connect process for proto=vnc trans=ssh connhost=KP-T4.englab.nay.redhat.com connuser=root connport=None gaddr=:: gport=5900 gsocket=None
2012-10-26 18:10:46,827 (console:374): VNC connecting to :::5900
2012-10-26 18:10:46,849 (console:961): Viewer disconnected
2012-10-26 18:10:49,046 (engine:475): window counter decremented to 1
2012-10-26 18:10:52,212 (engine:548): Leaked <vmmConsolePages object at 0x239f410 (virtManager+console+vmmConsolePages at 0x293fa80)>
2012-10-26 18:10:52,212 (engine:548): Leaked <VNCViewer object at 0x23a5460 (GObject at 0x27e9b20)>
2012-10-26 18:10:52,212 (engine:550): Exiting app normally.

2. When connect to a spice guest, will get following info.
2012-10-26 18:16:30,928 (connection:578): Connection managed save support: True
2012-10-26 18:16:31,017 (connection:160): Using libvirt API for netdev enumeration
2012-10-26 18:16:31,018 (connection:200): Using libvirt API for mediadev enumeration
2012-10-26 18:16:32,257 (engine:471): window counter incremented to 2
2012-10-26 18:16:32,261 (console:1078): Starting connect process for proto=spice trans=ssh connhost=KP-T4.englab.nay.redhat.com connuser=root connport=None gaddr=:: gport=5900 gsocket=None
2012-10-26 18:16:32,261 (console:502): spice uri: spice://::?port=5900

(virt-manager:7482): GSpice-WARNING **: Double set of 'port' in URI 'spice://'
2012-10-26 18:16:37,450 (engine:475): window counter decremented to 1
2012-10-26 18:16:40,090 (engine:550): Exiting app normally.

Expected results:
1. After step 6, console should be opened normally.

Additional info:
1. virt-viewer -c qemu+ssh://[ipv6]/system $guestname works well.
2. Looks this bug is caused virt-manager cannot solve :: address, but when I modify it to [::] in xml, guest will fail to start.

Comment 4 Martin Kletzander 2014-01-02 13:50:07 UTC
What's the message about guest failing to start when you use '[ipv6]'?  This probably needs to be fixed to allow both [::] and :: addresses and using (transforming) them correctly to different "backends".  How does it look with VNC instead of spice?

Comment 5 tingting zheng 2014-01-06 03:25:26 UTC
(In reply to Martin Kletzander from comment #4)
> What's the message about guest failing to start when you use '[ipv6]'?  This
> probably needs to be fixed to allow both [::] and :: addresses and using
> (transforming) them correctly to different "backends".  How does it look
> with VNC instead of spice?

1.For spice guest with [::],error shows:
Error starting domain: internal error: process exited while connecting to monitor: ((null):3362): Spice-Warning **: reds.c:3032:reds_init_socket: getaddrinfo([::],5900): Name or service not known
qemu-kvm: failed to initialize spice server


Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1220, in startup
    self._backend.create()
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error: process exited while connecting to monitor: ((null):3362): Spice-Warning **: reds.c:3032:reds_init_socket: getaddrinfo([::],5900): Name or service not known
qemu-kvm: failed to initialize spice server


2.For vnc guest with [::] in xml,error shows:
Error starting domain: internal error: early end of file from monitor: possible problem:
qemu-kvm: Failed to start VNC server on `[[::]]:0': error parsing IPv6 address '[[::]]:0'


Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1220, in startup
    self._backend.create()
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error: early end of file from monitor: possible problem:
qemu-kvm: Failed to start VNC server on `[[::]]:0': error parsing IPv6 address '[[::]]:0'

Comment 11 tingting zheng 2014-05-06 05:17:33 UTC
I can reproduce this bug with:
virt-manager-0.9.0-19.el6.x86_64

Tested with:
virt-manager-0.9.0-20.el6.x86_64

Steps:
1. Prepare 2 hosts, make sure they can contact with each other through ipv6.
2. Select a hosts as a server and install a guest on it.
3. Modify the guest's xml, make sure its graphic device is listening to ::
4. Start the guest.
5. From the other host, add a qemu+ssh connection through ipv6 to the server.
6. Open console through virt-manager.

For spice guest:
If there is no guest running on localhost,the guest on remote host can not be launched,it just shows:Connecting to graphics console for guest.
If there is a guest with the same spice port on localhost,when try to launch guest on remote host,guest on localhost will be launched instead of guest on remote host.
Debug info:
2014-05-05 23:11:23,190 (console:1150): Starting connect process for proto=spice trans=ssh connhost=[3ffe connuser=root connport=:104] gaddr=:: gport=5900 gsocket=None
2014-05-05 23:11:23,190 (console:528): spice uri: spice://[::]?port=5900
2014-05-05 23:11:23,323 (console:1061): Viewer connected

For vnc guest:
If there is no guest running on localhost,the guest on remote host can not be launched,it just shows:Error:viewer connection to hypervisor host got refused or disconnected!
If there is a guest with the same spice port on localhost,when try to launch guest on remote host,guest on localhost will be launched instead of guest on remote host.
Debug info:
2014-05-05 23:30:35,347 (console:1150): Starting connect process for proto=vnc trans=ssh connhost=[3ffe connuser=root connport=:104] gaddr=:: gport=5900 gsocket=None
2014-05-05 23:30:35,348 (console:378): VNC connecting to :::5900
2014-05-05 23:30:35,458 (console:1061): Viewer connected

Refer to the above comments,move the bug to ASSIGNED.

Comment 13 Giuseppe Scrivano 2014-05-08 17:50:06 UTC
*** Bug 1094628 has been marked as a duplicate of this bug. ***

Comment 15 tingting zheng 2014-05-13 06:39:08 UTC
Tested with:
libvirt-0.10.2-34.el6.x86_64
virt-manager-0.9.0-22.el6.x86_64
python-virtinst-0.600.0-21.el6.noarch

Steps:
1. Prepare 2 hosts, make sure they can contact with each other through ipv6.
2. Select a hosts as a server and install a guest on it.
3. Modify the guest's xml, make sure its graphic device is listening to ::
4. Start the guest.
5. From the other host, add a qemu+ssh connection through ipv6 to the server.Mare sure there is no guest running on localhost.
6. Open console through virt-manager,the console can be launched successfully.

The log for spice and vnc guests shows as below:
2014-05-13 02:19:07,367 (console:1150): Starting connect process for proto=spice trans=ssh connhost=3ffe::104 connuser=root connport=None gaddr=:: gport=5900 gsocket=None
2014-05-13 02:19:07,367 (console:528): spice uri: spice://[3ffe::104]?port=5900


2014-05-13 02:19:10,533 (console:1150): Starting connect process for proto=vnc trans=ssh connhost=3ffe::104 connuser=root connport=None gaddr=:: gport=5901 gsocket=None
2014-05-13 02:19:10,534 (console:378): VNC connecting to 3ffe::104:5901

Refer to the above comments,move the bug to VERIFIED.

Comment 16 errata-xmlrpc 2014-10-14 06:25:39 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, and where to find the updated
files, follow the link below.

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

http://rhn.redhat.com/errata/RHBA-2014-1447.html