Bug 1229655

Summary: VNC Console failed to load with IPv6 Addresses
Product: Red Hat OpenStack Reporter: Udi Shkalim <ushkalim>
Component: openstack-novaAssignee: Sahid Ferdjaoui <sferdjao>
Status: CLOSED ERRATA QA Contact: Udi Shkalim <ushkalim>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0 (Kilo)CC: adahms, berrange, dasmith, eglynn, kchamart, ndipanov, nyechiel, oblaut, pbrady, sbauza, sferdjao, sgordon, ssainkar, vromanso, yeylon
Target Milestone: ga   
Target Release: 7.0 (Kilo)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: openstack-nova-2015.1.0-12.el7ost Doc Type: Bug Fix
Doc Text:
When deploying an OpenStack environment that uses IPv6, VNC consoles would fail to load and an exception was raised to the client because the websocketproxy was unable to verify the origin header - "handler exception: Origin header does not match this host.” With this release, the code in websocketproxy has been updated to handle IPv6. As a result, users can now successfully connect to VNC consoles when all services are configured to use IPv6.
Story Points: ---
Clone Of:
: 1229669 (view as bug list) Environment:
Last Closed: 2015-08-05 13:25:13 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: 1083896, 1229669    

Description Udi Shkalim 2015-06-09 10:58:43 UTC
Description of problem:
After installation with packstack of openstack over IPv6 address(All components using IPv6) VNC console is unreachable

Version-Release number of selected component (if applicable):
Packstack version-
packstack Kilo 2015.1.dev1537.gba5183c
RHEL version -
Red Hat Enterprise Linux Server release 7.1 (Maipo)
openstack versions:
2015.1.0
novnc-0.5.1-2.el7.noarch
openstack-nova-cert-2015.1.0-3.el7.noarch
openstack-nova-compute-2015.1.0-3.el7.noarch
openstack-nova-common-2015.1.0-3.el7.noarch
python-nova-2015.1.0-3.el7.noarch
openstack-nova-novncproxy-2015.1.0-3.el7.noarch
openstack-nova-console-2015.1.0-3.el7.noarch
openstack-nova-scheduler-2015.1.0-3.el7.noarch
openstack-nova-conductor-2015.1.0-3.el7.noarch
openstack-nova-api-2015.1.0-3.el7.noarch
python-novaclient-2.23.0-1.el7.noarch

Try to open noVNC console via the web browser with IPv6 address

Steps to Reproduce:
1. Install openstack with IPv6 addresses for all components
2. Login to the horizon dashboard using IPv6
3. Launch an instance
4. try to activate console

Actual results:
Console failed to connect - error 1006

Expected results:
Console should connect successfully

Additional info:

nova novnc log:
2015-05-12 10:25:33.961 15936 INFO nova.console.websocketproxy [-] WebSocket server settings:
2015-05-12 10:25:33.962 15936 INFO nova.console.websocketproxy [-] - Listen on ::0:6080
2015-05-12 10:25:33.962 15936 INFO nova.console.websocketproxy [-] - Flash security policy server
2015-05-12 10:25:33.962 15936 INFO nova.console.websocketproxy [-] - Web server. Web root: /usr/share/novnc
2015-05-12 10:25:33.963 15936 INFO nova.console.websocketproxy [-] - No SSL/TLS support (no cert file)
2015-05-12 10:25:33.965 15936 INFO nova.console.websocketproxy [-] - proxying from ::0:6080 to None:None
2015-05-13 10:33:12.084 15936 CRITICAL nova [-] UnboundLocalError: local variable 'exc' referenced before assignment
2015-05-13 10:33:12.084 15936 TRACE nova Traceback (most recent call last):
2015-05-13 10:33:12.084 15936 TRACE nova File "/usr/bin/nova-novncproxy", line 10, in <module>
2015-05-13 10:33:12.084 15936 TRACE nova sys.exit(main())
2015-05-13 10:33:12.084 15936 TRACE nova File "/usr/lib/python2.7/site-packages/nova/cmd/novncproxy.py", line 49, in main
2015-05-13 10:33:12.084 15936 TRACE nova port=CONF.novncproxy_port)
2015-05-13 10:33:12.084 15936 TRACE nova File "/usr/lib/python2.7/site-packages/nova/cmd/baseproxy.py", line 72, in proxy
2015-05-13 10:33:12.084 15936 TRACE nova RequestHandlerClass=websocketproxy.NovaProxyRequestHandler
2015-05-13 10:33:12.084 15936 TRACE nova File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 1018, in start_server
2015-05-13 10:33:12.084 15936 TRACE nova self.msg("handler exception: %s", str(exc))
2015-05-13 10:33:12.084 15936 TRACE nova UnboundLocalError: local variable 'exc' referenced before assignment
2015-05-13 10:33:12.084 15936 TRACE nova
2015-05-13 10:52:41.893 3696 INFO nova.console.websocketproxy [-] WebSocket server settings:
2015-05-13 10:52:41.893 3696 INFO nova.console.websocketproxy [-] - Listen on ::0:6080
2015-05-13 10:52:41.894 3696 INFO nova.console.websocketproxy [-] - Flash security policy server
2015-05-13 10:52:41.894 3696 INFO nova.console.websocketproxy [-] - Web server. Web root: /usr/share/novnc
2015-05-13 10:52:41.894 3696 INFO nova.console.websocketproxy [-] - No SSL/TLS support (no cert file)
2015-05-13 10:52:41.920 3696 INFO nova.console.websocketproxy [-] - proxying from ::0:6080 to None:None
2015-05-13 10:54:04.345 3979 INFO oslo_messaging._drivers.impl_rabbit [req-e47dae76-1c51-4ce8-9100-d98022fc6e34 - - - - -] Connecting to AMQP server on 2001:77:77:77:f816:3eff:fe95:8683:5672
2015-05-13 10:54:04.380 3979 INFO oslo_messaging._drivers.impl_rabbit [req-e47dae76-1c51-4ce8-9100-d98022fc6e34 - - - - -] Connected to AMQP server on 2001:77:77:77:f816:3eff:fe95:8683:5672
2015-05-13 10:54:04.388 3979 INFO oslo_messaging._drivers.impl_rabbit [req-e47dae76-1c51-4ce8-9100-d98022fc6e34 - - - - -] Connecting to AMQP server on 2001:77:77:77:f816:3eff:fe95:8683:5672
2015-05-13 10:54:04.408 3979 INFO oslo_messaging._drivers.impl_rabbit [req-e47dae76-1c51-4ce8-9100-d98022fc6e34 - - - - -] Connected to AMQP server on 2001:77:77:77:f816:3eff:fe95:8683:5672
2015-05-13 10:54:04.554 3979 INFO nova.console.websocketproxy [req-e47dae76-1c51-4ce8-9100-d98022fc6e34 - - - - -] handler exception: Origin header does not match this host.

Comment 3 Nir Yechiel 2015-06-09 11:36:43 UTC
This was filled as part of the IPv6 testing. The patch seems to be working properly, hence this BZ to track the inclusion in OSP-7.

Comment 5 Udi Shkalim 2015-06-24 12:28:37 UTC
Verified the fix locally on an IPv6 environment

Comment 7 errata-xmlrpc 2015-08-05 13:25:13 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.

https://access.redhat.com/errata/RHEA-2015:1548