Incorrect handling of SCALE_IN action in clusters with desired_capacity = min_size
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
senlin |
Fix Released
|
Undecided
|
Nguyen Ngoc Hieu |
Bug Description
Behavior: With a cluster having desired_capacity = min_size when performing the SCALE_IN action, the action will fail because the capacity has reached the minimum threshold of the cluster (this is correct). However, the node was removed from the LB earlier due to pre_op, when it should not have been removed in this case. In some instances, this may lead to downtime when all IPs are removed from the LB even though min_size has been set.
Reproduce this bug:
- Create a cluster with desired_capacity = min_size (desired_capacity > 0).
- Attach lb_policy.
- Perform SCALE_IN with count number = 1
=> The node still remains in the cluster, but its IP has been removed from the LB.
Root cause: pre_op runs before every SCALE_IN action and removes the IP from the LB without checking whether the action is valid or not. In this case, pre_op should check the condition from the beginning and do nothing if desired_capacity = min_size.
https:/
Changed in senlin: | |
assignee: | nobody → Nguyen Ngoc Hieu (zitechdev201) |
Fix proposed to branch: master /review. opendev. org/c/openstack /senlin/ +/904796
Review: https:/