Comment 18 for bug 1825537

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

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

commit cbf6a46d8fcd3236bff44439c8d143a77167dfe2
Author: Matt Riedemann <email address hidden>
Date: Fri Apr 19 12:28:34 2019 -0400

    Drop source node allocations if finish_resize fails

    By the time finish_resize runs on the dest host, the instance
    host/node values are already pointing at the dest (they are
    set by resize_instance on the source compute before casting to
    finish_resize on the dest). If finish_resize fails, the instance
    is essentially stuck on the dest host so rather than revert the
    allocations (which will drop the new flavor allocations against
    the dest host where the instance now lives) we should just drop
    the old flavor allocations on the source node resource provider,
    which is what this change does.

    The functional regression recreate test is updated to show this
    working.

    Conflicts:
          nova/tests/functional/regressions/test_bug_1825537.py
          nova/tests/functional/test_servers.py

    NOTE(mriedem): The functional test conflicts are due to not having
    change If6aa37d9b6b48791e070799ab026c816fda4441c in Rocky.
    The code fix is also different because we don't have change
    I0851e2d54a1fdc82fe3291fb7e286e790f121e92 in Rocky and cannot use
    the _delete_allocation_after_move method as documented inline.
    This also means we have to deal with migration-based and legacy
    tracked allocations (where the source and dest node allocations
    are both on the instance consumer). As such, similar logic to
    _delete_allocation_after_move is used to try and delete the
    migration-based allocations first and failing that, attempt
    to cleanup the source node allocations the legacy way by removing
    them from the "doubled up" allocations created by the scheduler.
    Since this is new logic in the backport, a functional test is
    added to cover the legacy cleanup flow.

    Change-Id: I52c8d038118c858004e17e71b2fba9e9e2714815
    Closes-Bug: #1825537
    (cherry picked from commit ea297d6ffba81c5dc982afe6519de09ff3744cad)
    (cherry picked from commit e6c6178d22db43959103da1400017fa49b18f514)