diff options
author | Julia Kreger <juliaashleykreger@gmail.com> | 2022-08-01 18:18:53 -0700 |
---|---|---|
committer | Julia Kreger <juliaashleykreger@gmail.com> | 2022-08-02 02:56:07 +0000 |
commit | fb253a670fc66d6e1946f6435448d45c9c13f5dd (patch) | |
tree | b6c3cb7e86c342f20dbf3b5fd746ddcd852102cb /releasenotes/notes/suppress_chassis_not_found_error-99ee4b902d504ec7.yaml | |
parent | 45c9c3029f5363b6e24e578648c09213a7338db1 (diff) | |
download | ironic-fb253a670fc66d6e1946f6435448d45c9c13f5dd.tar.gz |
Suppress Chassis Not Found on API Operation
When you have a multi-db deployment, or even just many
different threads operating on the same server with different
transactions, you can run into a situation where one thread
initiates a transaction to get a list of nodes, and then
another triggers a delete of the chassis (and most likely node,
but hey, there is really no way to detect that and work.)
So as the API is processing the response and making the json
result set, the query to resolve a chassis_id on a node object
can begin to fail.
Before this patch, this would raise an exception to the client.
Now, we just suppress the error, and return the field value
as None.
In the grand scheme, the node is likely has also already
been deleted as well.
Change-Id: I3594ac580c01454c70922a965a2a653a8b568cbb
Closes-Bug: 1508995
Story: 1508995
Task: 10038
Diffstat (limited to 'releasenotes/notes/suppress_chassis_not_found_error-99ee4b902d504ec7.yaml')
-rw-r--r-- | releasenotes/notes/suppress_chassis_not_found_error-99ee4b902d504ec7.yaml | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/releasenotes/notes/suppress_chassis_not_found_error-99ee4b902d504ec7.yaml b/releasenotes/notes/suppress_chassis_not_found_error-99ee4b902d504ec7.yaml new file mode 100644 index 000000000..bc55ec3a2 --- /dev/null +++ b/releasenotes/notes/suppress_chassis_not_found_error-99ee4b902d504ec7.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixes an issue where an API user, when requesting a node list or single + node object, could get an error indicating that the request was bad as + the chassis was not found. This can occur when in-flight delete + operations are in progress on another thread. Instead of surfacing a + request breaking error, the API now suppresses the error and just + treats it as if there is no Chassis. |