Comment 18 for bug 1821594

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/stein)

Reviewed: https://review.openstack.org/650437
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=5f515060f6c79f113f7b8107596e41056445c79f
Submitter: Zuul
Branch: stable/stein

commit 5f515060f6c79f113f7b8107596e41056445c79f
Author: Matt Riedemann <email address hidden>
Date: Mon Mar 25 14:02:17 2019 -0400

    Delete allocations even if _confirm_resize raises

    When we are confirming a resize, the guest is on the dest
    host and the instance host/node values in the database
    are pointing at the dest host, so the _confirm_resize method
    on the source is really best effort. If something fails, we
    should not leak allocations in placement for the source compute
    node resource provider since the instance is not actually
    consuming the source node provider resources.

    This change refactors the error handling around the _confirm_resize
    call so the big nesting for _error_out_instance_on_exception is
    moved to confirm_resize and then a try/finally is added around
    _confirm_resize so we can be sure to try and cleanup the allocations
    even if _confirm_resize fails in some obscure way. If _confirm_resize
    does fail, the error gets re-raised along with logging a traceback
    and hint about how to correct the instance state in the DB by hard
    rebooting the server on the dest host.

    Conflicts:
          nova/compute/manager.py

    NOTE(mriedem): The conflict is due to not having change
    I49034f87e240775cca7a4d769819dd788b86832a in Stein.

    Change-Id: I29c5f491ec20a71283190a1599e7732541de736f
    Closes-Bug: #1821594
    (cherry picked from commit 03a6d26691c1f182224d59190b79f48df278099e)