Confusing error message when volume create fails

Bug #1846532 reported by Matt Riedemann on 2019-10-03
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Medium
Fan Zhang
Queens
Low
Fan Zhang
Rocky
Low
Fan Zhang
Stein
Low
Fan Zhang
Train
Low
Fan Zhang

Bug Description

Method `nova.volume.cinder.API#create` accepts `size` as the 3rd args,
but in wrapper of `nova.volume.cinder.translate_volume_exception`, the 3rd
parameter is volume_id. If we hit cinder exception when creating volumes
like the response body down below:
```
{"itemNotFound": {"message": "Volume type with name xxx could not be found.",
"code": 404}}
```
we may get exception in nova compute log like this:
```
BuildAbortException: Build of instance xxx aborted: Volume 40 could not be
found.
```
actually, `40` is volume size, not voluem id.

This could be a little misleading.

Changed in nova:
assignee: Fan Zhang (fanzhang) → Matt Riedemann (mriedem)
Matt Riedemann (mriedem) on 2019-10-03
Changed in nova:
assignee: Matt Riedemann (mriedem) → Fan Zhang (fanzhang)

Reviewed: https://review.opendev.org/678991
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=0f9311fae19e4e204cdc601acbe7dafc49c73661
Submitter: Zuul
Branch: master

commit 0f9311fae19e4e204cdc601acbe7dafc49c73661
Author: Fan Zhang <email address hidden>
Date: Wed Aug 28 11:16:25 2019 +0800

    Fix exception translation when creating volume

    Method `nova.volume.cinder.API#create` accepts `size` as the 3rd args,
    but in wrapper of `nova.volume.cinder.translate_volume_exception`, the 3rd
    parameter is volume_id. If we hit cinder exception when creating volumes
    like the response body down below:
    ```
    {"itemNotFound": {"message": "Volume type with name xxx could not be found.",
    "code": 404}}
    ```
    we may get exception in nova compute log like this:
    ```
    BuildAbortException: Build of instance xxx aborted: Volume 40 could not be
    found.
    ```
    actually, `40` is volume size, not voluem id.

    This could be a little misleading.

    Closes-Bug: #1846532

    Change-Id: If5b0c2f28773e0b2fcb008d5251fb69d950ca569
    Signed-off-by: Fan Zhang <email address hidden>

Changed in nova:
status: In Progress → Fix Released

Reviewed: https://review.opendev.org/688072
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=821506a50c13c73a2877e20ed9efc37a80e5dff8
Submitter: Zuul
Branch: stable/train

commit 821506a50c13c73a2877e20ed9efc37a80e5dff8
Author: Fan Zhang <email address hidden>
Date: Wed Aug 28 11:16:25 2019 +0800

    Fix exception translation when creating volume

    Method `nova.volume.cinder.API#create` accepts `size` as the 3rd args,
    but in wrapper of `nova.volume.cinder.translate_volume_exception`, the 3rd
    parameter is volume_id. If we hit cinder exception when creating volumes
    like the response body down below:
    ```
    {"itemNotFound": {"message": "Volume type with name xxx could not be found.",
    "code": 404}}
    ```
    we may get exception in nova compute log like this:
    ```
    BuildAbortException: Build of instance xxx aborted: Volume 40 could not be
    found.
    ```
    actually, `40` is volume size, not voluem id.

    This could be a little misleading.

    Closes-Bug: #1846532

    Change-Id: If5b0c2f28773e0b2fcb008d5251fb69d950ca569
    Signed-off-by: Fan Zhang <email address hidden>
    (cherry picked from commit 0f9311fae19e4e204cdc601acbe7dafc49c73661)

Reviewed: https://review.opendev.org/688073
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=c0313bce0685b5c1b5f57502711ea9d88d67a332
Submitter: Zuul
Branch: stable/stein

commit c0313bce0685b5c1b5f57502711ea9d88d67a332
Author: Fan Zhang <email address hidden>
Date: Wed Aug 28 11:16:25 2019 +0800

    Fix exception translation when creating volume

    Method `nova.volume.cinder.API#create` accepts `size` as the 3rd args,
    but in wrapper of `nova.volume.cinder.translate_volume_exception`, the 3rd
    parameter is volume_id. If we hit cinder exception when creating volumes
    like the response body down below:
    ```
    {"itemNotFound": {"message": "Volume type with name xxx could not be found.",
    "code": 404}}
    ```
    we may get exception in nova compute log like this:
    ```
    BuildAbortException: Build of instance xxx aborted: Volume 40 could not be
    found.
    ```
    actually, `40` is volume size, not voluem id.

    This could be a little misleading.

    Closes-Bug: #1846532

    Change-Id: If5b0c2f28773e0b2fcb008d5251fb69d950ca569
    Signed-off-by: Fan Zhang <email address hidden>
    (cherry picked from commit 0f9311fae19e4e204cdc601acbe7dafc49c73661)
    (cherry picked from commit 821506a50c13c73a2877e20ed9efc37a80e5dff8)

Reviewed: https://review.opendev.org/688089
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=3903a906bf3e0c49971a7001e99c292ba8a41030
Submitter: Zuul
Branch: stable/rocky

commit 3903a906bf3e0c49971a7001e99c292ba8a41030
Author: Fan Zhang <email address hidden>
Date: Wed Aug 28 11:16:25 2019 +0800

    Fix exception translation when creating volume

    Method `nova.volume.cinder.API#create` accepts `size` as the 3rd args,
    but in wrapper of `nova.volume.cinder.translate_volume_exception`, the 3rd
    parameter is volume_id. If we hit cinder exception when creating volumes
    like the response body down below:
    ```
    {"itemNotFound": {"message": "Volume type with name xxx could not be found.",
    "code": 404}}
    ```
    we may get exception in nova compute log like this:
    ```
    BuildAbortException: Build of instance xxx aborted: Volume 40 could not be
    found.
    ```
    actually, `40` is volume size, not voluem id.

    This could be a little misleading.

    Closes-Bug: #1846532

    Change-Id: If5b0c2f28773e0b2fcb008d5251fb69d950ca569
    Signed-off-by: Fan Zhang <email address hidden>
    (cherry picked from commit 0f9311fae19e4e204cdc601acbe7dafc49c73661)
    (cherry picked from commit 821506a50c13c73a2877e20ed9efc37a80e5dff8)
    (cherry picked from commit c0313bce0685b5c1b5f57502711ea9d88d67a332)

Reviewed: https://review.opendev.org/688090
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=570664743cbc8bf2d853899ca3d67f277d6a0ed3
Submitter: Zuul
Branch: stable/queens

commit 570664743cbc8bf2d853899ca3d67f277d6a0ed3
Author: Fan Zhang <email address hidden>
Date: Wed Aug 28 11:16:25 2019 +0800

    Fix exception translation when creating volume

    Method `nova.volume.cinder.API#create` accepts `size` as the 3rd args,
    but in wrapper of `nova.volume.cinder.translate_volume_exception`, the 3rd
    parameter is volume_id. If we hit cinder exception when creating volumes
    like the response body down below:
    ```
    {"itemNotFound": {"message": "Volume type with name xxx could not be found.",
    "code": 404}}
    ```
    we may get exception in nova compute log like this:
    ```
    BuildAbortException: Build of instance xxx aborted: Volume 40 could not be
    found.
    ```
    actually, `40` is volume size, not voluem id.

    This could be a little misleading.

    Closes-Bug: #1846532

    Change-Id: If5b0c2f28773e0b2fcb008d5251fb69d950ca569
    Signed-off-by: Fan Zhang <email address hidden>
    (cherry picked from commit 0f9311fae19e4e204cdc601acbe7dafc49c73661)
    (cherry picked from commit 821506a50c13c73a2877e20ed9efc37a80e5dff8)
    (cherry picked from commit c0313bce0685b5c1b5f57502711ea9d88d67a332)
    (cherry picked from commit 3903a906bf3e0c49971a7001e99c292ba8a41030)

This issue was fixed in the openstack/nova 17.0.13 release.

This issue was fixed in the openstack/nova 20.0.1 release.

This issue was fixed in the openstack/nova 19.1.0 release.

This issue was fixed in the openstack/nova 18.3.0 release.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers