Public bug reported:

The patch - https://review.openstack.org/#/c/571535 was introduced with
the aim of keeping the same uuid value for ironic nodes and their
corresponding compute_node records. This works fine for when new nodes
are created. However upon restart/periodic updates from the ironic
driver, it tries to update the uuid of an existing compute_node record
based on the resource update from the ironic driver and this fails since
once a uuid is set it cannot be changed/updated.

Error traceback:

2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager 
[req-62cf93be-023b-41ca-8971-d3dbab4324f8 - - - - -] Error updating resources 
for node e3ef5531-3c39-458a-99f0-fd44592ae1ae.: ReadOnlyFieldError: Cannot 
modify readonly field uuid
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager Traceback (most recent 
call last):
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7337, in 
update_available_resource_for_node
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
rt.update_available_resource(context, nodename)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 680, 
in update_available_resource
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
self._update_available_resource(context, resources)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in 
inner
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     return f(*args, 
**kwargs)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 704, 
in _update_available_resource
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
self._init_compute_node(context, resources)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 559, 
in _init_compute_node
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
self._copy_resources(cn, resources)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 617, 
in _copy_resources
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
compute_node.update_from_virt_driver(resources)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/objects/compute_node.py", line 353, in 
update_from_virt_driver
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     setattr(self, key, 
resources[key])
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 77, in 
setter
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     raise 
exception.ReadOnlyFieldError(field=name)
2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager ReadOnlyFieldError: 
Cannot modify readonly field uuid

** Affects: nova
     Importance: High
         Status: Triaged

** Affects: nova/rocky
     Importance: High
         Status: Confirmed


** Tags: compute ironic upgrade

-- 
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/1798172

Title:
  Ironic driver tries to update the compute_node's UUID which of course
  fails in case of existing compute_nodes

Status in OpenStack Compute (nova):
  Triaged
Status in OpenStack Compute (nova) rocky series:
  Confirmed

Bug description:
  The patch - https://review.openstack.org/#/c/571535 was introduced
  with the aim of keeping the same uuid value for ironic nodes and their
  corresponding compute_node records. This works fine for when new nodes
  are created. However upon restart/periodic updates from the ironic
  driver, it tries to update the uuid of an existing compute_node record
  based on the resource update from the ironic driver and this fails
  since once a uuid is set it cannot be changed/updated.

  Error traceback:

  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager 
[req-62cf93be-023b-41ca-8971-d3dbab4324f8 - - - - -] Error updating resources 
for node e3ef5531-3c39-458a-99f0-fd44592ae1ae.: ReadOnlyFieldError: Cannot 
modify readonly field uuid
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager Traceback (most 
recent call last):
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7337, in 
update_available_resource_for_node
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
rt.update_available_resource(context, nodename)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 680, 
in update_available_resource
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
self._update_available_resource(context, resources)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in 
inner
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     return f(*args, 
**kwargs)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 704, 
in _update_available_resource
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
self._init_compute_node(context, resources)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 559, 
in _init_compute_node
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
self._copy_resources(cn, resources)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 617, 
in _copy_resources
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     
compute_node.update_from_virt_driver(resources)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/nova/objects/compute_node.py", line 353, in 
update_from_virt_driver
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     setattr(self, 
key, resources[key])
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager   File 
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 77, in 
setter
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager     raise 
exception.ReadOnlyFieldError(field=name)
  2018-10-11 02:30:34.142 21850 ERROR nova.compute.manager ReadOnlyFieldError: 
Cannot modify readonly field uuid

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1798172/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to