Right, and I see that chain of calls happen.

Specifically what I observe, and can confirm in devstack on the master branch, with no modified code is:

In the last section you linked: https://github.com/openstack/nova/blob/ca1db54f1bc498528ac3c8601157cb32e5174d21/nova/scheduler/host_manager.py#L385-L402

The hosts listed in aggregate.hosts in the _update_aggregate method are not consistent, and depending on the order in which the RPCs are processed, the host state and contents of “host_aggregates_map“ may still be incorrect after all RPCs have been resolved.

-Mike