Amphora fails with member on same subnet as vip

Bug #1488279 reported by Michael Johnson
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
octavia
Fix Released
Critical
Unassigned

Bug Description

On devstack, with REST driver(ssh unknown) it appears that network calculate delta is not working correctly.

Bring up a load balancer with the vip on the private subnet and then add a member on that same subnet.

plug network is being called on the amp for the interface even though it is already up which causes an exception in the controller:

2015-08-24 18:11:45.669 27578 WARNING octavia.controller.worker.controller_worker [-] Task 'octavia.controller.worker.tasks.amphora_driver_tasks.AmphoraePostNetworkPlug' (c3acb336-8faa-4602-8be8-8a9bdb9c75dc) transitioned into state 'FAILURE' from state 'RUNNING'
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker Traceback (most recent call last):
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/executor.py", line 82, in _execute_task
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker result = task.execute(**arguments)
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker File "/opt/stack/octavia/octavia/controller/worker/tasks/amphora_driver_tasks.py", line 171, in execute
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker self.amphora_driver.post_network_plug(amphora)
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker File "/opt/stack/octavia/octavia/amphorae/drivers/haproxy/rest_api_driver.py", line 112, in post_network_plug
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker self.client.plug_network(amphora)
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker File "/opt/stack/octavia/octavia/amphorae/drivers/haproxy/rest_api_driver.py", line 302, in plug_network
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker return exc.check_exception(r)
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker File "/opt/stack/octavia/octavia/amphorae/drivers/haproxy/exceptions.py", line 31, in check_exception
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker raise responses[status_code]()
2015-08-24 18:11:45.669 27578 ERROR octavia.controller.worker.controller_worker NotFound: Not Found

Revision history for this message
Brandon Logan (brandon-logan) wrote :

tested with ssh driver and it does not have this issue. Also did this exact scenario and calculate deltas looks to be working correctly. It is not returning any networks to be added or removed from the amphora when a member is added that is on the same subnet as the VIP. Must be somewhere else.

Revision history for this message
Sherif Abdelwahab (selgohari) wrote :

A similar problem occurred to me a couple of weeks ago (Also REST, SSH is unknown). I think, the problem is not in network deltas computation itself. The problem is in the AmphoraePostNetworkPlug task. The AmphoraePostNetworkPlug tries to perform a post plug configuration to add a new interface that is not actually added during the compute network deltas procedure, which causes this error (there is no down interface added by neutron).

I am not sure if this is problem equally true to SSH and REST drivers. However, I fixed this by changing the AmphoraePostNetworkPlug part as shown in line 165 of:

https://review.openstack.org/#/c/206252/17/octavia/controller/worker/tasks/amphora_driver_tasks.py

Revision history for this message
Brandon Logan (brandon-logan) wrote :

ah so really the post_network_plug method on the amphorae driver shouldn't even be called if no networks were added or created. Makes sense. I would pull that change out into its own commit though.

Changed in octavia:
status: New → Fix Committed
Changed in octavia:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.