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

Mark Kirkwood mark.kirkwood at catalyst.net.nz
Wed Jul 1 04:54:45 UTC 2015


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

Regards

Mark




More information about the Openstack mailing list