Comment 5 for bug 1763181

Revision history for this message
Chris Friesen (cbf123) wrote :

The rationale for the check against "older" instances is to try to avoid the case where two anti-affinity instances land on the same node, they *both* detect problems, and they *both* reschedule, potentially landing on the same node again. Ideally we want only one of them to reschedule and the other to continue.

The starlingx server group validation stuff is here:
https://github.com/starlingx-staging/stx-nova/blob/master/nova/compute/manager.py#L1408-L1436

The check against "older" instances is here:
https://github.com/starlingx-staging/stx-nova/blob/master/nova/objects/instance_group.py#L550-L572

Note that the check is called get_older_member_hosts() because it used to just check for instances that were created before the instance in question, but now it also looks at "newer" instances which are "further ahead" in being created. (To account for out-of-order processing.)