My working theory is that the ResourceTracker._copy_resources method is setting the ComputeNode.cpu_allocation_ratio (and other alloc ratios) to 0.0 based on config here:
And because of https://review.openstack.org/#/c/520024/ we are no longer calling ComputeNode.save() via ResourceTracker._update via ResourceTracker._init_compute_node so the ComputeNode.save() doesn't get called which would otherwise call ComputeNode._from_db_object which would fix the allocation ratio 0.0 values to the hard-coded defaults:
My working theory is that the ResourceTracker ._copy_ resources method is setting the ComputeNode. cpu_allocation_ ratio (and other alloc ratios) to 0.0 based on config here:
https:/ /github. com/openstack/ nova/blob/ f534495a427d168 3bc536cf003ec02 edbf6d8a45/ nova/compute/ resource_ tracker. py#L622
And because of https:/ /review. openstack. org/#/c/ 520024/ we are no longer calling ComputeNode.save() via ResourceTracker ._update via ResourceTracker ._init_ compute_ node so the ComputeNode.save() doesn't get called which would otherwise call ComputeNode. _from_db_ object which would fix the allocation ratio 0.0 values to the hard-coded defaults:
https:/ /github. com/openstack/ nova/blob/ f534495a427d168 3bc536cf003ec02 edbf6d8a45/ nova/objects/ compute_ node.py# L188
I've added more debug logging to the debug patch and will get another xenserver CI run.
Having said this, I'm not sure why this wouldn't be breaking us in the "normal" gate, i.e. tempest-full job.