So I think what is happening here, is there are no nova-compute nodes in the DB, so the min_service_version = 0.
This is then cached in the nova-conductor until restart. The cache could be triggered by some query in the conductor that happens before any nova-compute starts up.
Later, nova-compute starts, and if the conductor is restarted we get the correct min_version.
I think the code needs to worry about the special case of having no services, and getting the min_version of that.
So I think what is happening here, is there are no nova-compute nodes in the DB, so the min_service_version = 0.
This is then cached in the nova-conductor until restart. The cache could be triggered by some query in the conductor that happens before any nova-compute starts up.
Later, nova-compute starts, and if the conductor is restarted we get the correct min_version.
I think the code needs to worry about the special case of having no services, and getting the min_version of that.