BTW, if xenserver, powervm and vmware CI are all failing on this, it's not only intermittent but seems to also be isolated to virt drivers that don't implement the update_provider_tree method for whatever reason. Must be something in that alternative flow through the scheduler report client to report inventory updates to placement, likely because in the case of the libvirt driver, which does implement update_provider_tree, we're passing the same provider tree that the driver worked on to the scheduler report client, and in the non-libvirt case, we're passing an inventory dict to scheduler report client and the scheduler report client is updating its own view of the provider tree, which might be stale somehow.
BTW, if xenserver, powervm and vmware CI are all failing on this, it's not only intermittent but seems to also be isolated to virt drivers that don't implement the update_ provider_ tree method for whatever reason. Must be something in that alternative flow through the scheduler report client to report inventory updates to placement, likely because in the case of the libvirt driver, which does implement update_ provider_ tree, we're passing the same provider tree that the driver worked on to the scheduler report client, and in the non-libvirt case, we're passing an inventory dict to scheduler report client and the scheduler report client is updating its own view of the provider tree, which might be stale somehow.