Bug 1220081

Summary: websockify 0.6 is incompatible with icehosue novncproxy and installed by default in the repos
Product: [Community] RDO Reporter: Steven Dake <steven.dake>
Component: openstack-novaAssignee: Pádraig Brady <pbrady>
Status: CLOSED CURRENTRELEASE QA Contact: nlevinki <nlevinki>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: IcehouseCC: apevec, apevec, berrange, dasmith, eglynn, gianluca.cecchi, ndipanov, pbrady, rbryant, sbauza, sferdjao, sgordon, vromanso, yeylon
Target Milestone: ---   
Target Release: Icehouse   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-31 00:20:35 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:

Description Steven Dake 2015-05-09 22:23:03 UTC
Description of problem:
icehouse-4 repos install websockify 0.6, however, novanovnc only works with websockify 0.5.1

Version-Release number of selected component (if applicable):
websockify-0.6.0 is broken
websockify-0.5.1 works


How reproducible:
100%

Steps to Reproduce:
1. Install Icehouse
2. novavnc fails to start
3.

Actual results:
novavnc fails to start

Expected results:
novavnc should start

Additional info:
Logs:
[sdake@bigiron compose]$ sudo docker logs 268
Configuring VNC...
Starting nova-novncproxy
Traceback (most recent call last):
  File "/usr/bin/nova-novncproxy", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/nova/cmd/novncproxy.py", line 87, in ma
in
    wrap_cmd=None)
  File "/usr/lib/python2.7/site-packages/nova/console/websocketproxy.py", line 3
8, in __init__
    ssl_target=None, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/websockify/websocketproxy.py", line 231
, in __init__
    websocket.WebSocketServer.__init__(self, RequestHandlerClass, *args, **kwarg
s)
TypeError: __init__() got an unexpected keyword argument 'no_parent'


Workaround is to do following:

Comment 1 Alan Pevec (Fedora) 2015-05-11 07:00:36 UTC
websockify 0.6 was pushed to EPEL7
Workaround could be to push 0.5.1 to RDO Icehouse repo and rely on yum priorities to win over EPEL or patch novncproxy in Icehouse.
Setting needinfo for the latter from the Nova team.

Comment 2 Eoghan Glynn 2015-05-11 11:26:41 UTC
Nova icehouse upstream specifically exlcudes websockify 0.6.0:

  https://github.com/openstack/nova/commit/3eb67b81

So IMO most logical to workaround as suggested by enforcing uasage of 0.5.1.

Otherwise we would have to backport:

  https://github.com/openstack/nova/commit/9386dd2f

which would not be landable upstream on stable/icehouse (as this branch is in security-only mode).

Comment 3 Pádraig Brady 2015-05-11 11:50:50 UTC
https://review.gerrithub.io/232925

Comment 4 Alan Pevec (Fedora) 2015-05-11 11:56:29 UTC
> https://review.gerrithub.io/232925

I'm not sure this will always work, yum priorities is fragile.
While it is definitely not upstream stable/icehouse candidate at this point, we could cherry pick 9386dd2f to https://github.com/redhat-openstack/nova/commits/f21-patches to adjust RDO Icehouse to websockify 0.6 in EPEL7.

Comment 5 Alan Pevec 2015-05-22 13:23:54 UTC
ok, no backporting I'll push 0.5.1 downgrade to RDO Icehouse EL7

Comment 7 Gianluca Cecchi 2016-02-28 22:03:09 UTC
Hello,
I'm evaluating (for an exam that is based on Icehouse) Icehouse on CentOS 7.2 using repo based on
baseurl=http://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-7/
+ normal epel repo

It seems the problem still exists... I got same error because packstack installation pushed: python-websockify-0.6.0-2.el7.noarch

Was it a regression?
I was able to manually get python-websockify-0.5.1-1.el7.noarch.rpm at
http://rpm.pbone.net/index.php3/stat/4/idpl/27126366/dir/redhat_el_7/com/python-websockify-0.5.1-1.el7.noarch.rpm.html
and rpm -U --oldpackage python-websockify-0.5.1-1.el7.noarch.rpm

and 

systemctl restart openstack-nova-novncproxy.service

and now novnc console works.
Would it be possible to put the 0.5.1 rpm into rdo repo?
Thanks in advance,
Gianluca