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.
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.
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
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.