Reviewed: https://review.opendev.org/721667 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=d3ca7356860d64555eef6f5138501cb38f50ecc8 Submitter: Zuul Branch: master
commit d3ca7356860d64555eef6f5138501cb38f50ecc8 Author: Dan Smith <[email protected]> Date: Tue Apr 21 09:07:32 2020 -0700 Remove stale nested backport from InstancePCIRequests Sometime in 2015, we removed the hard-coded obj_relationships mapping from parent objects which facilitated semi-automated child version backports. This was replaced by a manifest-of-versions mechanism where the client reports all the supported objects and versions during a backport request to conductor. The InstancePCIRequests object isn't technically an ObjectListBase, despite acting like one, and thus wasn't using the obj_relationships. Because of this, it was doing its own backporting of its child object, which was not removed in the culling of the static mechanism. Because we now no longer need to worry about sub-object backport chaining, when version 1.2 was added, no backport rule was added, and since the object does not call the base class' generic routine, proper backporting of the child object was not happening. All we need to do is remove the override to allow the base infrastructure to do the work. Change-Id: Id610a24c066707de5ddc0507e7ef26c421ba366c Closes-Bug: #1868033 ** Changed in: nova Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1868033 Title: Booting instance with pci_device fails during rocky->stein live upgrade Status in OpenStack Compute (nova): Fix Released Bug description: Environment: Stein nova-conductor having set upgrade_levels to rocky Rocky nova-compute Boot an instance with a flavour that has a pci_device Error: Failed to publish message to topic 'nova': maximum recursion depth exceeded: RuntimeError: maximum recursion depth exceeded Tracked this down it it continually trying to backport the InstancePCIRequests: It gets as arguments: objinst={u'nova_object.version': u'1.1', u'nova_object.name': u'InstancePCIRequests', u'nova_object.data': {u'instance_uuid': u'08212b12-8fa8-42d9-8d3e-52ed60a64135', u'requests': [{u'nova_object.version': u'1.3', u'nova_object.name': u'InstancePCIRequest', u'nova_object.data': {u'count': 1, u'is_new': False, u'numa_policy': None, u'request_id': None, u'requester_id': None, u'alias_name': u'V100-32G', u'spec': [{u'vendor_id': u'10de', u'product_id': u'1db6'}]}, u'nova_object.namespace': u'nova'}]}, u'nova_object.namespace': u'nova'}, object_versions={u'InstancePCIRequests': '1.1', 'InstancePCIRequest': '1.2'} It fails because it doesn't backport the individual InstancePCIRequest inside the InstancePCIRequests object and so keeps trying. Error it shows is: IncompatibleObjectVersion: Version 1.3 of InstancePCIRequest is not supported, supported version is 1.2 I have fixed this in our setup by altering obj_make_compatible to downgrade the individual requests to version 1.2 which seems to work and all is good To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1868033/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

