allocation candidates member_of gets all the shared providers

Bug #1763907 reported by Tetsuro Nakamura
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Tetsuro Nakamura

Bug Description

When the `member_of` parameter is present, only non shared providers in the specified aggregation are picked, but the non shared provider brings shared providers from out of the specified aggregation.

For example, with the following set up,

```
               CN1 (VCPU) CN2 (VCPU)
              / agg3 \ agg1 / agg1 \ agg2
     SS3 (DISK_GB) SS1 (DISK_GB) SS2 (DISK_GB)
```

When you request allocation candidates in "agg3" using `member_of` parameter,
expected is to get one allocation request of the combination of (CN1+SS3),
but actual is to get two allocation request, (CN1+SS3) and (CN1+SS1).

Tags: placement
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to nova (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/561399

Changed in nova:
assignee: nobody → Tetsuro Nakamura (tetsuro0907)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/561400

tags: added: pla
tags: added: placement
removed: pla
Changed in nova:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to nova (master)

Reviewed: https://review.openstack.org/561399
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=d31e54b35fcc9f6b3b601235d8cbccf2af3a909f
Submitter: Zuul
Branch: master

commit d31e54b35fcc9f6b3b601235d8cbccf2af3a909f
Author: Tetsuro Nakamura <email address hidden>
Date: Sat Apr 14 17:33:27 2018 +0900

    Add tests for alloc_cands with member_of

    This patch add a functional test which describes a bug that when
    the `member_of` parameter is present, only non-sharing providers
    in the specified aggregates are picked, but the non-sharing
    provider brings sharing providers from out of the specified
    aggregates.

    Change-Id: Ie098bb6fa21b3656a8ea840f4e6d9407311bddcd
    Related-Bug: #1763907
    Blueprint: alloc-candidates-member-of

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

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

commit 0bb490e73fdb0914c01109565f59569dd1c73439
Author: Tetsuro Nakamura <email address hidden>
Date: Sat Apr 14 19:24:09 2018 +0900

    Fix member_of with sharing providers

    When the `member_of` parameter was present, non-sharing providers
    incorrectly associated sharing providers with other sharing providers
    with no direct connection to non-sharing providers involved in other
    parts of the request.

    This patch fixes the bug by adding the aggregate check in SQL
    query when getting sharing providers.

    Change-Id: I566cc5458175f8e3075be6967e5f6d91847ce198
    Closes-Bug: #1763907
    Blueprint: alloc-candidates-member-of

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 18.0.0.0b2

This issue was fixed in the openstack/nova 18.0.0.0b2 development milestone.

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.