← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1784666] [NEW] The thread local which stores the request context is not green

 

Public bug reported:

nova-compute imports oslo.context before calling monkey_patch():

(Pdb) bt
  /usr/local/bin/nova-compute(6)<module>()
-> from nova.cmd.compute import main
  /opt/stack/nova/nova/__init__.py(33)<module>()
-> import oslo_service  # noqa
  /usr/local/lib/python2.7/dist-packages/oslo_service/__init__.py(17)<module>()
-> from oslo_log import log as logging
  /usr/local/lib/python2.7/dist-packages/oslo_log/log.py(48)<module>()
-> from oslo_log import formatters
  /usr/local/lib/python2.7/dist-packages/oslo_log/formatters.py(28)<module>()
-> from oslo_context import context as context_utils
> /usr/local/lib/python2.7/dist-packages/oslo_context/context.py(40)<module>()
-> _request_store = threading.local()

which makes the global thread-local variable (_request_store) not green.
So instead of having request context per green thread, we have one
context for all green threads which is overwritten every time a new
context is created.

This is regression from this patch:

https://review.openstack.org/#/c/434327/

which imports oslo.service before eventlet

** Affects: nova
     Importance: Medium
         Status: Triaged

** Affects: nova/ocata
     Importance: Undecided
         Status: New

** Affects: nova/pike
     Importance: Undecided
         Status: New

** Affects: nova/queens
     Importance: Undecided
         Status: New

** Changed in: nova
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1784666

Title:
  The thread local which stores the request context is not green

Status in OpenStack Compute (nova):
  Triaged
Status in OpenStack Compute (nova) ocata series:
  New
Status in OpenStack Compute (nova) pike series:
  New
Status in OpenStack Compute (nova) queens series:
  New

Bug description:
  nova-compute imports oslo.context before calling monkey_patch():

  (Pdb) bt
    /usr/local/bin/nova-compute(6)<module>()
  -> from nova.cmd.compute import main
    /opt/stack/nova/nova/__init__.py(33)<module>()
  -> import oslo_service  # noqa
    /usr/local/lib/python2.7/dist-packages/oslo_service/__init__.py(17)<module>()
  -> from oslo_log import log as logging
    /usr/local/lib/python2.7/dist-packages/oslo_log/log.py(48)<module>()
  -> from oslo_log import formatters
    /usr/local/lib/python2.7/dist-packages/oslo_log/formatters.py(28)<module>()
  -> from oslo_context import context as context_utils
  > /usr/local/lib/python2.7/dist-packages/oslo_context/context.py(40)<module>()
  -> _request_store = threading.local()

  which makes the global thread-local variable (_request_store) not
  green. So instead of having request context per green thread, we have
  one context for all green threads which is overwritten every time a
  new context is created.

  This is regression from this patch:

  https://review.openstack.org/#/c/434327/

  which imports oslo.service before eventlet

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


Follow ups