loadbalancer resource suffers from having 2 masters
Bug #1379619 reported by
Angus Salkeld
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
High
|
Zane Bitter |
Bug Description
This bug: https:/
Firstly it has a public property "members" that the user can set. Then autoscaling dynamically updates this property too.
So if a user creates a stack with members not set (fully expecting autoscaling to drive it)
then does an unrelated update the loadbalancer will update to the now empty list of members - oops.
This is an example of this: https:/
I am not sure how to worm our way out of this one:-(
Changed in heat: | |
importance: | Undecided → High |
Changed in heat: | |
milestone: | kilo-1 → juno-rc3 |
tags: | removed: juno-rc-potential |
Changed in heat: | |
milestone: | juno-rc3 → 2014.2 |
To post a comment you must log in.
Here is a bit of debug from that test case: http:// paste.openstack .org/show/ 120038/
To clarify the situation:
stack create (lb.members not set)
-> scaling group runs an update on the lb (lb.members = [something])
stack update (lb.members not set)
...
If it were to stop here the user would not have a functioning lb!
Relevant bits from that log:
WARNING [heat.engine. resource] before_props {u'protocol_port': 8080, u'pool_id': u'987a5c57- fd6f-4615- 9f78-f24aa1692d a1', u'members': [u'phsl4no46pnh']}
# here ^ it remembered the properties from the automatic update
WARNING [heat.engine. resource] after_props {u'protocol_port': 8080, u'pool_id': <heat.engine. cfn.functions. ResourceRef {Ref: u'myPool'} -> u'987a5c57- fd6f-4615- 9f78-f24aa1692d a1'>}
# this ^ is the new empty members from the user's template
INFO [heat.engine. resource] updating LoadBalancer "ElasticLoadBal ancer" Stack "update_test_stack" [b906dc3f- 7b89-4236- 9627-b218fd920e 7f] resource] _store_or_update {u'protocol_port': 8080, u'pool_id': u'987a5c57- fd6f-4615- 9f78-f24aa1692d a1', u'members': [u'phsl4no46pnh']} set([u' phsl4no46pnh' ])
WARNING [heat.engine.
WARNING [**lb**] LoadBalancer members:set([])
WARNING [**lb**] LoadBalancer old_members:
# here the members are getting removed from the lb.