Current version of websocket-client in PyPi breaks bundletester #108

Open
thedac opened this Issue Jun 20, 2017 · 3 comments

Comments

Projects
None yet
3 participants

thedac commented Jun 20, 2017

websocket-client 0.42.1 (current in PyPi) breaks bundletester (and/or jujuclient):

Traceback (most recent call last):
File "/home/thedac/dev/keystone/.tox/func27/bin/bundletester", line 11, in
sys.exit(entrypoint())
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/bundletester/tester.py", line 166, in entrypoint
status = main()
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/bundletester/tester.py", line 155, in main
[report.emit(result) for result in run()]
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/bundletester/runner.py", line 142, in call
bootstrapped = self.builder.bootstrap()
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/bundletester/builder.py", line 57, in bootstrap
self.environment.connect()
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/deployer/env/go.py", line 78, in connect
self.client = self.client_class.connect(self.name)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/jujuclient/environment.py", line 87, in connect
return connector().run(cls, env_name)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/jujuclient/connector.py", line 56, in run
cert_path, data.get('environ-uuid'))
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/jujuclient/connector.py", line 64, in connect_env
env = cls(endpoint, name=name, ca_cert=cert_path, env_uuid=env_uuid)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/jujuclient/juju2/environment.py", line 15, in init
super(Environment, self).init(*args, **kw)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/jujuclient/environment.py", line 41, in init
endpoint, self._ca_cert)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/jujuclient/connector.py", line 99, in connect_socket
endpoint, origin=endpoint, sslopt=sslopt)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/websocket/_core.py", line 487, in create_connection
websock.connect(url, **options)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/websocket/_core.py", line 211, in connect
options.pop('socket', None))
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/websocket/_http.py", line 77, in connect
sock = _ssl_socket(sock, options.sslopt, hostname)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/websocket/_http.py", line 182, in _ssl_socket
sock = _wrap_sni_socket(sock, sslopt, hostname, check_hostname)
File "/home/thedac/dev/keystone/.tox/func27/local/lib/python2.7/site-packages/websocket/_http.py", line 160, in _wrap_sni_socket
server_hostname=hostname,
File "/usr/lib/python2.7/ssl.py", line 363, in wrap_socket
_context=self)
File "/usr/lib/python2.7/ssl.py", line 611, in init
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 840, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

Pinning "websocket-client<=0.40.0" in requirements keeps it working.

Can we either add the websocket-client pin to requirements or explore the change in SSL handling?

Member

tvansteenburgh commented Jun 20, 2017

I'm +1 on pinning until we have time to find a "real" fix. I'll make a new release.

@tvansteenburgh tvansteenburgh self-assigned this Jun 20, 2017

tvansteenburgh added a commit that referenced this issue Jun 20, 2017

Pin websocket-client to avoid ssl failure.
This is temporary until we have time to make a real fix for
#108
Member

tvansteenburgh commented Jun 20, 2017

v0.12.2 is now on pypi, with websocket-client pinned. Leave this bug open until we make a real fix.

simonklb commented Jun 27, 2017

jujuclient also installs websocket-client, so people that installs (from pypi) for example juju-deployer will also hit the same bug
http://bazaar.launchpad.net/~juju-deployers/python-jujuclient/trunk/view/head:/setup.py#L14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment