← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1777640] [NEW] Neutron doesn't work with Eventlet >= 0.22

 

Public bug reported:

https://review.openstack.org/#/c/561953/ tried to make Neutron compatible with two types of eventlet.wsgi.HttpProtocol.__init__: old, with 3 arguments and new, with 2 arguments. But it is not the full solution, because UnixDomainHttpProtocol.__init__ still able to work with 3 arguments only.
Pike version of Neutron with backported 2c31f7f35129cb2160592633e52083b412d6c2cd fix fails with

  File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 458, in fire_timers
    timer()
  File "/usr/lib/python2.7/dist-packages/eventlet/hubs/timer.py", line 58, in __call__
    cb(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 218, in main
    result = function(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 781, in process_request
    proto.__init__(conn_state, self)
TypeError: __init__() takes exactly 4 arguments (3 given)

because Eventlet tries to use UnixDomainHttpProtocol.__init__ in new way.
Most likely that __init__ in UnixDomainHttpProtocol should accept variable number of arguments, pick and modify address if needed and call appropriate form of base class __init__.

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1777640

Title:
  Neutron doesn't work with Eventlet >= 0.22

Status in neutron:
  New

Bug description:
  https://review.openstack.org/#/c/561953/ tried to make Neutron compatible with two types of eventlet.wsgi.HttpProtocol.__init__: old, with 3 arguments and new, with 2 arguments. But it is not the full solution, because UnixDomainHttpProtocol.__init__ still able to work with 3 arguments only.
  Pike version of Neutron with backported 2c31f7f35129cb2160592633e52083b412d6c2cd fix fails with

    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 458, in fire_timers
      timer()
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/timer.py", line 58, in __call__
      cb(*args, **kw)
    File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 218, in main
      result = function(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 781, in process_request
      proto.__init__(conn_state, self)
  TypeError: __init__() takes exactly 4 arguments (3 given)

  because Eventlet tries to use UnixDomainHttpProtocol.__init__ in new way.
  Most likely that __init__ in UnixDomainHttpProtocol should accept variable number of arguments, pick and modify address if needed and call appropriate form of base class __init__.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1777640/+subscriptions


Follow ups