If osapi_volume_listen is an ipv6 address then attempting to start the cinder-api service gets:
2015-07-03 12:49:57.696 TRACE cinder Traceback (most recent call last): 2015-07-03 12:49:57.696 TRACE cinder File "/usr/local/bin/cinder-api", line 6, in <module> 2015-07-03 12:49:57.696 TRACE cinder exec(compile(open(__file__).read(), __file__, 'exec')) 2015-07-03 12:49:57.696 TRACE cinder File "/opt/stack/cinder/bin/cinder-api", line 60, in <module> 2015-07-03 12:49:57.696 TRACE cinder server = service.WSGIService('osapi_volume') 2015-07-03 12:49:57.696 TRACE cinder File "/opt/stack/cinder/cinder/service.py", line 345, in __init__ 2015-07-03 12:49:57.696 TRACE cinder port=self.port) 2015-07-03 12:49:57.696 TRACE cinder File "/opt/stack/cinder/cinder/wsgi.py", line 177, in __init__ 2015-07-03 12:49:57.696 TRACE cinder family=family) 2015-07-03 12:49:57.696 TRACE cinder File "/usr/local/lib/python2.7/dist-packages/eventlet/convenience.py", line 39, in listen 2015-07-03 12:49:57.696 TRACE cinder sock.bind(addr) 2015-07-03 12:49:57.696 TRACE cinder File "/usr/lib/python2.7/socket.py", line 224, in meth 2015-07-03 12:49:57.696 TRACE cinder return getattr(self._sock,name)(*args) 2015-07-03 12:49:57.696 TRACE cinder gaierror: [Errno -9] Address family for hostname not supported
The environment is Openstack Juno on Ubuntu 14.04 (devstack )
Note that pythondns is installed as a dependency if swift is installed, so is quite easy to trigger this.
This looks to be similar to https://bugs.launchpad.net/swift/+bug/1361204 and https://bugs.launchpad.net/nova/+bug/1164822 . Despite the latter suggesting that eventlet has fixed the issue it does not appear to be working with kludging an env variable (as nova does - see below).
Nova gets around this by setting EVENTLET_NO_GREENDNS=yes in __init__.py. This type of fix should work for cinder too, or alternatively in the cinder-api service file.
If osapi_volume_listen is an ipv6 address then attempting to start the cinder-api service gets:
2015-07-03 12:49:57.696 TRACE cinder Traceback (most recent call last): bin/cinder- api", line 6, in <module> open(__ file__) .read() , __file__, 'exec')) cinder/ bin/cinder- api", line 60, in <module> WSGIService( 'osapi_ volume' ) cinder/ cinder/ service. py", line 345, in __init__ cinder/ cinder/ wsgi.py" , line 177, in __init__ lib/python2. 7/dist- packages/ eventlet/ convenience. py", line 39, in listen python2. 7/socket. py", line 224, in meth self._sock, name)(* args)
2015-07-03 12:49:57.696 TRACE cinder File "/usr/local/
2015-07-03 12:49:57.696 TRACE cinder exec(compile(
2015-07-03 12:49:57.696 TRACE cinder File "/opt/stack/
2015-07-03 12:49:57.696 TRACE cinder server = service.
2015-07-03 12:49:57.696 TRACE cinder File "/opt/stack/
2015-07-03 12:49:57.696 TRACE cinder port=self.port)
2015-07-03 12:49:57.696 TRACE cinder File "/opt/stack/
2015-07-03 12:49:57.696 TRACE cinder family=family)
2015-07-03 12:49:57.696 TRACE cinder File "/usr/local/
2015-07-03 12:49:57.696 TRACE cinder sock.bind(addr)
2015-07-03 12:49:57.696 TRACE cinder File "/usr/lib/
2015-07-03 12:49:57.696 TRACE cinder return getattr(
2015-07-03 12:49:57.696 TRACE cinder gaierror: [Errno -9] Address family for hostname not supported
The environment is Openstack Juno on Ubuntu 14.04 (devstack )
Note that pythondns is installed as a dependency if swift is installed, so is quite easy to trigger this.
This looks to be similar to https:/ /bugs.launchpad .net/swift/ +bug/1361204 and https:/ /bugs.launchpad .net/nova/ +bug/1164822 . Despite the latter suggesting that eventlet has fixed the issue it does not appear to be working with kludging an env variable (as nova does - see below).
Nova gets around this by setting EVENTLET_ NO_GREENDNS= yes in __init__.py. This type of fix should work for cinder too, or alternatively in the cinder-api service file.