[Openstack] [Swift][Cinder] Installing Swift breaks Cinder ipv6

Mark Kirkwood mark.kirkwood at catalyst.net.nz
Fri Jul 3 09:13:47 UTC 2015


On 01/07/15 16:54, Mark Kirkwood wrote:
> On 01/07/15 13:10, Mark Kirkwood wrote:
>> I ran into this a few days ago. The context is we are running a node
>> that performs several api functions and it is going to be a swift proxy
>> too (at a later date when usage ramps up many of these functions may
>> move to individual machines, but for now we'd like to keep them
>> together).
>>
>> The machines are running Ubuntu Trusty, and we are installing Icehouse
>> packages.
>>
>> So currently the cinder api service runs and listens on a wide ipv6
>> range (::). After I install the python-swift package the cinder api
>> refuses to start with:
>>
>> 2015-07-01 00:50:25.327 12159 CRITICAL cinder [-] gaierror: [Errno -9]
>> Address family for hostname not supported
>> 2015-07-01 00:50:25.327 12159 TRACE cinder Traceback (most recent call
>> last):
>> 2015-07-01 00:50:25.327 12159 TRACE cinder   File "/usr/bin/cinder-api",
>> line 57, in <module>
>> 2015-07-01 00:50:25.327 12159 TRACE cinder     server =
>> service.WSGIService('osapi_volume')
>> 2015-07-01 00:50:25.327 12159 TRACE cinder   File
>> "/usr/lib/python2.7/dist-packages/cinder/service.py", line 301, in
>> __init__
>> 2015-07-01 00:50:25.327 12159 TRACE cinder     port=self.port)
>> 2015-07-01 00:50:25.327 12159 TRACE cinder   File
>> "/usr/lib/python2.7/dist-packages/cinder/wsgi.py", line 118, in __init__
>> 2015-07-01 00:50:25.327 12159 TRACE cinder     backlog=backlog)
>> 2015-07-01 00:50:25.327 12159 TRACE cinder   File
>> "/usr/lib/python2.7/dist-packages/cinder/wsgi.py", line 174, in
>> _get_socket
>> 2015-07-01 00:50:25.327 12159 TRACE cinder     family=family)
>> 2015-07-01 00:50:25.327 12159 TRACE cinder   File
>> "/usr/lib/python2.7/dist-packages/eventlet/convenience.py", line 38, in
>> listen
>> 2015-07-01 00:50:25.327 12159 TRACE cinder     sock.bind(addr)
>> 2015-07-01 00:50:25.327 12159 TRACE cinder   File
>> "/usr/lib/python2.7/socket.py", line 224, in meth
>> 2015-07-01 00:50:25.327 12159 TRACE cinder     return
>> getattr(self._sock,name)(*args)
>> 2015-07-01 00:50:25.327 12159 TRACE cinder gaierror: [Errno -9] Address
>> family for hostname not supported
>>
>> The culprit appears to be the python-dnspython package that is a dep for
>> python-swift.
>>
>> Now it appears that there is some monkey patching going on in the
>> various wsgi eventlet modules to do ipv6 - somehow python-dnspython is
>> changing the way that works - any thoughts welcome, as it would be cool
>> to have things working again!
>>
>
> After reading up a bit on this whole monkey patching thing, I see that
> adding:
>
> EVENTLET_NO_GREENDNS=yes
>
> to the cinder user's env seems to get it working again. However this
> will mean that there is *no* patching...which might not be the best
> answer (still hoping for better suggestions).
>

Doing some more research - it seems Nova's __init__.py is setting this 
env variable to 'yes" - which suggests that Cinder should do similarly. 
I've raised a bug here: https://bugs.launchpad.net/cinder/+bug/1471049

Regards

Mark





More information about the Openstack mailing list