yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #95588
[Bug 2103811] [NEW] nova (metadata)api does not exit on fatal errors under mod_wsgi
Public bug reported:
In previous releases we addressed https://bugs.launchpad.net/nova/+bug/1882094
(a bug with how mod_wsgi reloads wsgi applications into the same python
interpreter on error) by wrapping the initialization of global data in
a run_once decorator. The run_once decorator solves the reentrancy problem
for the initialization of the config objects or other global state that
can only be setup once in a given python interpreter.
This allows the nova wsgi application to be reloaded and retried when
transient errors, such as the db being unavailable when the api starts,
to heal overtime.
The run_once decorator also had an unplanned side-effect. If the nova-api
raised an error for an non-transient issue such as invalid config that would
be raised only once and nova would serve subsequent requests with a partly
initialized config. This will lead to undefined behavior and is
obviously a bug. When run under other wsgi servers config errors cause
the hosting python interpreter to exit, this is not the behavior of mod_wsgi.
** Affects: nova
Importance: Medium
Assignee: sean mooney (sean-k-mooney)
Status: In Progress
** Tags: api
--
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/2103811
Title:
nova (metadata)api does not exit on fatal errors under mod_wsgi
Status in OpenStack Compute (nova):
In Progress
Bug description:
In previous releases we addressed https://bugs.launchpad.net/nova/+bug/1882094
(a bug with how mod_wsgi reloads wsgi applications into the same python
interpreter on error) by wrapping the initialization of global data in
a run_once decorator. The run_once decorator solves the reentrancy problem
for the initialization of the config objects or other global state that
can only be setup once in a given python interpreter.
This allows the nova wsgi application to be reloaded and retried when
transient errors, such as the db being unavailable when the api starts,
to heal overtime.
The run_once decorator also had an unplanned side-effect. If the nova-api
raised an error for an non-transient issue such as invalid config that would
be raised only once and nova would serve subsequent requests with a partly
initialized config. This will lead to undefined behavior and is
obviously a bug. When run under other wsgi servers config errors cause
the hosting python interpreter to exit, this is not the behavior of mod_wsgi.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2103811/+subscriptions
Follow ups