shelve doesn't handle UnexpectedTaskStateError
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Low
|
Artom Lifshitz | ||
Queens |
Fix Released
|
Low
|
Artom Lifshitz | ||
Rocky |
Fix Committed
|
Low
|
Artom Lifshitz | ||
Stein |
Fix Committed
|
Low
|
Artom Lifshitz | ||
Train |
Fix Committed
|
Low
|
Artom Lifshitz |
Bug Description
Description
===========
Shelving a server expects its task state to be None. If it's not None (for example, if attempting to shelve a server that's already being shelved), we get a UnexpectedTaskS
Steps to reproduce
==================
1. Send multiple shelve requests in quick succession.
Expected result
===============
The initial request should be accepted, the rest should return 409.
Actual result
=============
Error 500 for all requests except the first.
Environment
===========
This was reported on OSP13 (Queens) originally [1].
Logs & Configs
==============
2019-05-28 03:18:48.530 26 INFO nova.osapi_
2019-05-28 03:18:48.529 26 INFO nova.api.
<class 'nova.exception
2019-05-28 03:18:48.529 26 DEBUG nova.api.
<class 'nova.exception
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
2019-05-28 03:18:48.523 26 ERROR nova.api.
Additional Info
===============
This is obviously minor, as the difference between a 500 and a 409 is purely semantic, but we're being told this is an SLA thing. An SLA defines 5xx as being "down", while 4xx is user error and therefore "up".
Changed in nova: | |
assignee: | Artom Lifshitz (notartom) → Matt Riedemann (mriedem) |
Changed in nova: | |
importance: | Undecided → Low |
tags: | added: api |
Changed in nova: | |
assignee: | Matt Riedemann (mriedem) → Artom Lifshitz (notartom) |
tags: | added: shelve |
Fix proposed to branch: master /review. opendev. org/692206
Review: https:/