wrap wsgi_app.init_application with latch_error_on_raise

This change adds a latch_error_on_raise decorator which
is applied to the init_applciation function in our
common wsgi_app module.

This decorator will catch all non retryable exceptions
and cause future invocations of the function to always
return that same exception forever.

a reset function is also added to the decorated function
which should be called in our bases test class to
prevent cross test interactons.

Closes-Bug: #2103811
Related-Bug: #1882094
Change-Id: I44b1f7e2acc36a5b557d6d8788f6099f52bbdfb8
This commit is contained in:
Sean Mooney
2025-03-18 17:42:07 +00:00
parent 6042300453
commit 8dcbbe43e7
6 changed files with 128 additions and 0 deletions
@@ -0,0 +1,9 @@
---
fixes:
- |
The nova (metadata)api wsgi application will now detect fatal errors
(configuration, et al) on startup and lock into a permanent error state
until fixed and restarted. This solves a problem with some wsgi runtimes
ignoring initialization errors and continuing to send requests to the
half-initialized service. See https://bugs.launchpad.net/nova/+bug/2103811
for more details.