PciDeviceList is not versioned properly in liberty and kilo

Bug #1474074 reported by Nikola Đipanov on 2015-07-13
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
High
Nikola Đipanov
Kilo
High
Dan Smith

Bug Description

The following commit:

https://review.openstack.org/#/c/140289/4/nova/objects/pci_device.py

missed to bump the PciDeviceList version.

We should do it now (master @ 4bfb094) and backport this to stable Kilo as well

Changed in nova:
status: New → Confirmed
importance: Undecided → High

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

Changed in nova:
assignee: nobody → Nikola Đipanov (ndipanov)
status: Confirmed → In Progress
Nikola Đipanov (ndipanov) wrote :

So the way to solve this for stable kilo is to actually introduce a .z versioning for all the objects that relate to PciDeviceList (sadly this means Instance and all of it's relations).

The catch here is that Liberty code needs to be aware of the .z version so as not to backport the pci_devices as part of the Instance to a lower version.

Reviewed: https://review.openstack.org/201280
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=80c109f85a9e8b182e918027731760e91026cb81
Submitter: Jenkins
Branch: master

commit 80c109f85a9e8b182e918027731760e91026cb81
Author: Nikola Dipanov <email address hidden>
Date: Tue Jul 14 16:25:15 2015 +0100

    Fix the incorrect PciDeviceList version number

    The following commit missed to bump the related list when bumping the
    object version.

        commit 1d4ad44f15503b8710ff59dea9f5e3f4894d56fb
        Author: Przemyslaw Czesnowicz <email address hidden>
        Date: Thu Nov 20 12:04:05 2014 +0000

            Add numa_node to PCIDevice

            The change extends the PCI device model and its DB representation.
            Query libvirt for the PCI devices numa node.

    This patch adds the necessary changes to master. We only bump the
    PciDeviceList version, and add a backporting rule to obj_relationship
    dictionary of the Instance object, to start sending the new version with
    1.20 version of the instance (we are currently on 1.21).

    Landing this patch fixes versioning going forward, and all interactions
    that request the PciDeviceList through the Instance object, however
    applying the stable/kilo backport of this is required for Kilo nodes to
    start requesting the latest version of PciDevice through PciDeviceList.

    We can't send 1.2 PciDeviceList to Kilo nodes yet because of
    related-bug 1475254 , so we have to backport this to Kilo first before
    we can start sending the 1.2 to Kilo nodes.

    Related-bug: #1474074
    Change-Id: Id743848061d2bcd64d785979c7a11ee7c945f06b

Reviewed: https://review.openstack.org/201654
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=a55ea8c92914d78ad63aca393dc4c70539c227a9
Submitter: Jenkins
Branch: stable/kilo

commit a55ea8c92914d78ad63aca393dc4c70539c227a9
Author: Nikola Dipanov <email address hidden>
Date: Tue Jul 14 16:25:15 2015 +0100

    Fix the incorrect PciDeviceList version number

    The following commit missed to bump the related list when bumping the
    object version.

        commit 1d4ad44f15503b8710ff59dea9f5e3f4894d56fb
        Author: Przemyslaw Czesnowicz <email address hidden>
        Date: Thu Nov 20 12:04:05 2014 +0000

            Add numa_node to PCIDevice

            The change extends the PCI device model and its DB representation.
            Query libvirt for the PCI devices numa node.

    This patch adds the necessary changes to master. We only bump the
    PciDeviceList version, and add a backporting rule to obj_relationship
    dictionary of the Instance object, to start sending the new version with
    1.18 version of the instance (we are currently on 1.21)

    The master patch fixes versioning going forward, and all interactions
    that request the PciDeviceList through the Instance object, however
    applying this stable/kilo backport is required for Kilo nodes to
    start requesting the latest version of PciDevice through PciDeviceList.

    (cherry picked from commit 80c109f85a9e8b182e918027731760e91026cb81)

    Conflicts:
     nova/objects/instance.py
     nova/tests/unit/objects/test_objects.py

    Closes-bug: #1474074
    Change-Id: Id743848061d2bcd64d785979c7a11ee7c945f06b

tags: added: in-stable-kilo

Reviewed: https://review.openstack.org/203169
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e6e39e1d3cead20bd30b674d5e28c3b6758ed773
Submitter: Jenkins
Branch: stable/kilo

commit e6e39e1d3cead20bd30b674d5e28c3b6758ed773
Author: Dan Smith <email address hidden>
Date: Fri Jul 17 10:22:28 2015 -0700

    Remove incorrect Instance 1.18 relationship for PciDevice 1.2

    Commit a55ea8c92914d78ad63aca393dc4c70539c227a9 introduced a relationship
    for Instance 1.18 to send PciDevice 1.2. That is problematic for people
    doing commit-to-commit deployment of stable/kilo because upgrading your
    conductor nodes before your computes will send back an unsupported
    version 1.2. Just landing the version bump now means that all nodes will
    tolerate a newer object, but conductors won't send it.

    This change is not on master (because it doesn't make sense there).

    Change-Id: Ibdfb0b52cc04e4055b83bad7c733e86bdc405d2a
    Related-Bug: #1474074

Reviewed: https://review.openstack.org/202616
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=363ef82a66cb3b3528de03686f79f7c13ef33305
Submitter: Jenkins
Branch: master

commit 363ef82a66cb3b3528de03686f79f7c13ef33305
Author: Nikola Dipanov <email address hidden>
Date: Thu Jul 16 15:54:47 2015 +0100

    objects: send PciDeviceList 1.2 to all code that can handle it

    After commit Id743848061d2bcd64d785979c7a11ee7c945f06b has been landed
    on stable/kilo - it is now safe to send PciDeviceList version 1.2 to
    all code that can handle it (Instance 1.18 and above).

    Change-Id: I80ce8ca3b70e5547bbb3d5ffc592633b56c59f96
    Closes-bug: #1474074

Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx) on 2015-09-03
Changed in nova:
milestone: none → liberty-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2015-10-15
Changed in nova:
milestone: liberty-3 → 12.0.0
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers