change admin state up for loadbalancer twice caused loadbalancer provisioning status to go to PENDING_UPDATE
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
octavia |
Fix Released
|
Critical
|
Bharath |
Bug Description
Devstack all in one setup with no active/standby
Loadbalancer provisioning status goes to PENDING_UPDATE when the admin-state-up is updated two times and there are two listeners attached to the LoadBalancer.
Steps to re-create:
1. Created a loadbalancer and created 2 listeners (with ports 80 and 22) for the loadbalancer.
2. Loadbalancer is listed with the 2 listeners.
3. Updated the admin state up for the loadbalancer to FALSE. Loadbalancer is updated and is in ACTIVE status.
4. Updated the loadbalancer admin state up to TRUE. Loadbalancer provisioning status remains in PENDING_UPDATE status.
neutron lbaas-loadbalan
+------
| Field | Value |
+------
| admin_state_up | True |
| description | |
| id | 555fff7e-
| listeners | |
| name | LB4 |
| operating_status | ONLINE |
| pools | |
| provider | octavia |
| provisioning_status | ACTIVE |
| tenant_id | 4cc6946175474fe
| vip_address | 8.0.0.105 |
| vip_port_id | 8c455402-
| vip_subnet_id | b4848552-
+------
stack@paco-
Created a new listener:
+------
| Field | Value |
+------
| admin_state_up | True |
| connection_limit | 2 |
| default_pool_id | |
| default_
| description | This is the first listener for the LB4 |
| id | 92d4e43a-
| loadbalancers | {"id": "555fff7e-
| name | Listener01 |
| protocol | HTTP |
| protocol_port | 80 |
| sni_container_refs | |
| tenant_id | 4cc6946175474fe
+------
stack@paco-
Created a new listener:
+------
| Field | Value |
+------
| admin_state_up | True |
| connection_limit | 2 |
| default_pool_id | |
| default_
| description | This is the second listener for the LB4 |
| id | f726a49a-
| loadbalancers | {"id": "555fff7e-
| name | Listener02 |
| protocol | TCP |
| protocol_port | 22 |
| sni_container_refs | |
| tenant_id | 4cc6946175474fe
+------
stack@paco-
+------
| Field | Value |
+------
| admin_state_up | True |
| description | |
| id | 555fff7e-
| listeners | {"id": "92d4e43a-
| | {"id": "f726a49a-
| name | LB4 |
| operating_status | ONLINE |
| pools | |
| provider | octavia |
| provisioning_status | ACTIVE |
| tenant_id | 4cc6946175474fe
| vip_address | 8.0.0.105 |
| vip_port_id | 8c455402-
| vip_subnet_id | b4848552-
+------
stack@paco-
Updated loadbalancer: LB4
stack@paco-
+------
| Field | Value |
+------
| admin_state_up | False |
| description | |
| id | 555fff7e-
| listeners | {"id": "92d4e43a-
| | {"id": "f726a49a-
| name | LB4 |
| operating_status | ONLINE |
| pools | |
| provider | octavia |
| provisioning_status | ACTIVE |
| tenant_id | 4cc6946175474fe
| vip_address | 8.0.0.105 |
| vip_port_id | 8c455402-
| vip_subnet_id | b4848552-
+------
stack@paco-
Updated loadbalancer: LB4
stack@paco-
+------
| Field | Value |
+------
| admin_state_up | True |
| description | |
| id | 555fff7e-
| listeners | {"id": "92d4e43a-
| | {"id": "f726a49a-
| name | LB4 |
| operating_status | ONLINE |
| pools | |
| provider | octavia |
| provisioning_status | PENDING_UPDATE |
| tenant_id | 4cc6946175474fe
| vip_address | 8.0.0.105 |
| vip_port_id | 8c455402-
| vip_subnet_id | b4848552-
+------
Changed in octavia: | |
importance: | Undecided → Critical |
tags: | added: target-mitaka |
description: | updated |
Changed in octavia: | |
assignee: | nobody → Bharath (bharathm) |
Reviewed: https:/ /review. openstack. org/290408 /git.openstack. org/cgit/ openstack/ octavia/ commit/ ?id=ecfca348904 560c341e8464413 7b9c0aa09b3949
Committed: https:/
Submitter: Jenkins
Branch: master
commit ecfca348904560c 341e84644137b9c 0aa09b3949
Author: Bharath M <email address hidden>
Date: Wed Mar 9 03:16:25 2016 -0800
Fix admin-state-up
While updating the admin-state-up of LB, Listener, Pool,
or member the update fails due to the wrong order of the
positional parameters.
This leads to SQL syntax error and eventually
Loadbalancer gets stuck in PENDING_UPDATE provisioning
status.
The haproxy jinja was not taking into account if objects
were enabled or not.
This patch fixes the above issue.
This patch also adds the OpenFixture class from neutron
to enable safer mocks of os.open. This was needed for the
test of this code.
Co-Authored-By: Michael Johnson <email address hidden> 092b821c2c18c41 696d6789265
Closes-Bug: #1547123
Closes-Bug: #1549036
Closes-Bug: #1549186
Closes-Bug: #1552098
Change-Id: Id5733cc8e26ec7