yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #53866
[Bug 1602974] [NEW] [stable/liberty] LBaaS v2 haproxy: need a way to find status of listener
Public bug reported:
Currently we dont have option to check status of listener. Below is the
output of listener without status.
root@runner:~# neutron lbaas-listener-show 8c0e0289-f85d-4539-8970-467a45a5c191
+---------------------------+------------------------------------------------+
| Field | Value |
+---------------------------+------------------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| default_pool_id | |
| default_tls_container_ref | |
| description | |
| id | 8c0e0289-f85d-4539-8970-467a45a5c191 |
| loadbalancers | {"id": "bda96c0a-0167-45ab-8772-ba92bc0f2d00"} |
| name | test-lb-http |
| protocol | HTTP |
| protocol_port | 80 |
| sni_container_refs | |
| tenant_id | ce1d087209c64df4b7e8007dc35def22 |
+---------------------------+------------------------------------------------+
root@runner:~#
Problem arise when we tried to configure listener and pool back to back
without any delay. Pool create fails saying listener is not ready.
Workaround is to add 3seconds delay between listener and pool creation.
Logs:
root@runner:~# neutron lbaas-loadbalancer-create --name test-lb vn-subnet; neutron lbaas-listener-create --name test-lb-http --loadbalancer test-lb --protocol HTTP --protocol-port 80; neutron lbaas-pool-create --name test-lb-pool-http --lb-algorithm ROUND_ROBIN --listener test-lb-http --protocol HTTP
Created a new loadbalancer:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| description | |
| id | 3ed2ff4a-4d87-46da-8e5b-265364dd6861 |
| listeners | |
| name | test-lb |
| operating_status | OFFLINE |
| provider | haproxy |
| provisioning_status | PENDING_CREATE |
| tenant_id | ce1d087209c64df4b7e8007dc35def22 |
| vip_address | 20.0.0.62 |
| vip_port_id | 4c33365e-64b9-428f-bc0b-bce6c08c9b20 |
| vip_subnet_id | 63cbeccd-6887-4dda-b4d2-b7503bce870a |
+---------------------+--------------------------------------+
Created a new listener:
+---------------------------+------------------------------------------------+
| Field | Value |
+---------------------------+------------------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| default_pool_id | |
| default_tls_container_ref | |
| description | |
| id | 90260465-934a-44a4-a289-208e5af74cf5 |
| loadbalancers | {"id": "3ed2ff4a-4d87-46da-8e5b-265364dd6861"} |
| name | test-lb-http |
| protocol | HTTP |
| protocol_port | 80 |
| sni_container_refs | |
| tenant_id | ce1d087209c64df4b7e8007dc35def22 |
+---------------------------+------------------------------------------------+
Invalid state PENDING_UPDATE of loadbalancer resource 3ed2ff4a-4d87-46da-8e5b-265364dd6861
root@runner:~#
Neutron:
: u'90260465-934a-44a4-a289-208e5af74cf5', u'protocol': u'HTTP', u'name': u'test-lb-pool-http', u'admin_state_up': True}} from (pid=7189) prepare_request_body /opt/stack/neutron/neutron/api/v2/base.py:657
2016-07-14 07:38:57.268 DEBUG neutron.db.quota.driver [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] Resources subnet,network,subnetpool,listener,healthmonitor,router,l2-gateway-connection,port,loadbalancer have unlimited quota limit. It is not required to calculated headroom from (pid=7189) make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:167
2016-07-14 07:38:57.276 DEBUG neutron.db.quota.driver [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] Attempting to reserve 1 items for resource pool. Total usage: 0; quota limit: 10; headroom:10 from (pid=7189) make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:199
2016-07-14 07:38:57.353 ERROR neutron.api.v2.resource [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] create failed
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource Traceback (most recent call last):
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource result = method(request=request, **args)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 410, in create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource return self._create(request, body, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource ectxt.value = e.inner_exc
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource return f(*args, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 521, in _create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource obj = do_create(body)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 503, in do_create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource request.context, reservation.reservation_id)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 496, in do_create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource return obj_creator(request.context, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron-lbaas/neutron_lbaas/services/loadbalancer/plugin.py", line 743, in create_pool
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource constants.PENDING_UPDATE)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 164, in test_and_set_status
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource self.assert_modification_allowed(db_lb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 151, in assert_modification_allowed
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource raise loadbalancerv2.StateInvalid(id=id, state=status)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource StateInvalid: Invalid state PENDING_UPDATE of loadbalancer resource 3ed2ff4a-4d87-46da-8e5b-265364dd6861
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource
2016-07-14 07:38:57.355 INFO neutron.wsgi [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] 172.17.5.148 - - [14/Jul/2016 07:38:57] "POST /v2.0/lbaas/pools.json HTTP/1.1" 500 394 0.091943
** Affects: neutron
Importance: Undecided
Status: New
** Tags: lbaas
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1602974
Title:
[stable/liberty] LBaaS v2 haproxy: need a way to find status of
listener
Status in neutron:
New
Bug description:
Currently we dont have option to check status of listener. Below is
the output of listener without status.
root@runner:~# neutron lbaas-listener-show 8c0e0289-f85d-4539-8970-467a45a5c191
+---------------------------+------------------------------------------------+
| Field | Value |
+---------------------------+------------------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| default_pool_id | |
| default_tls_container_ref | |
| description | |
| id | 8c0e0289-f85d-4539-8970-467a45a5c191 |
| loadbalancers | {"id": "bda96c0a-0167-45ab-8772-ba92bc0f2d00"} |
| name | test-lb-http |
| protocol | HTTP |
| protocol_port | 80 |
| sni_container_refs | |
| tenant_id | ce1d087209c64df4b7e8007dc35def22 |
+---------------------------+------------------------------------------------+
root@runner:~#
Problem arise when we tried to configure listener and pool back to
back without any delay. Pool create fails saying listener is not
ready.
Workaround is to add 3seconds delay between listener and pool
creation.
Logs:
root@runner:~# neutron lbaas-loadbalancer-create --name test-lb vn-subnet; neutron lbaas-listener-create --name test-lb-http --loadbalancer test-lb --protocol HTTP --protocol-port 80; neutron lbaas-pool-create --name test-lb-pool-http --lb-algorithm ROUND_ROBIN --listener test-lb-http --protocol HTTP
Created a new loadbalancer:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| description | |
| id | 3ed2ff4a-4d87-46da-8e5b-265364dd6861 |
| listeners | |
| name | test-lb |
| operating_status | OFFLINE |
| provider | haproxy |
| provisioning_status | PENDING_CREATE |
| tenant_id | ce1d087209c64df4b7e8007dc35def22 |
| vip_address | 20.0.0.62 |
| vip_port_id | 4c33365e-64b9-428f-bc0b-bce6c08c9b20 |
| vip_subnet_id | 63cbeccd-6887-4dda-b4d2-b7503bce870a |
+---------------------+--------------------------------------+
Created a new listener:
+---------------------------+------------------------------------------------+
| Field | Value |
+---------------------------+------------------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| default_pool_id | |
| default_tls_container_ref | |
| description | |
| id | 90260465-934a-44a4-a289-208e5af74cf5 |
| loadbalancers | {"id": "3ed2ff4a-4d87-46da-8e5b-265364dd6861"} |
| name | test-lb-http |
| protocol | HTTP |
| protocol_port | 80 |
| sni_container_refs | |
| tenant_id | ce1d087209c64df4b7e8007dc35def22 |
+---------------------------+------------------------------------------------+
Invalid state PENDING_UPDATE of loadbalancer resource 3ed2ff4a-4d87-46da-8e5b-265364dd6861
root@runner:~#
Neutron:
: u'90260465-934a-44a4-a289-208e5af74cf5', u'protocol': u'HTTP', u'name': u'test-lb-pool-http', u'admin_state_up': True}} from (pid=7189) prepare_request_body /opt/stack/neutron/neutron/api/v2/base.py:657
2016-07-14 07:38:57.268 DEBUG neutron.db.quota.driver [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] Resources subnet,network,subnetpool,listener,healthmonitor,router,l2-gateway-connection,port,loadbalancer have unlimited quota limit. It is not required to calculated headroom from (pid=7189) make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:167
2016-07-14 07:38:57.276 DEBUG neutron.db.quota.driver [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] Attempting to reserve 1 items for resource pool. Total usage: 0; quota limit: 10; headroom:10 from (pid=7189) make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:199
2016-07-14 07:38:57.353 ERROR neutron.api.v2.resource [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] create failed
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource Traceback (most recent call last):
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource result = method(request=request, **args)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 410, in create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource return self._create(request, body, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource ectxt.value = e.inner_exc
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource return f(*args, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 521, in _create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource obj = do_create(body)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 503, in do_create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource request.context, reservation.reservation_id)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 496, in do_create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource return obj_creator(request.context, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron-lbaas/neutron_lbaas/services/loadbalancer/plugin.py", line 743, in create_pool
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource constants.PENDING_UPDATE)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 164, in test_and_set_status
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource self.assert_modification_allowed(db_lb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource File "/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 151, in assert_modification_allowed
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource raise loadbalancerv2.StateInvalid(id=id, state=status)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource StateInvalid: Invalid state PENDING_UPDATE of loadbalancer resource 3ed2ff4a-4d87-46da-8e5b-265364dd6861
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource
2016-07-14 07:38:57.355 INFO neutron.wsgi [req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin ce1d087209c64df4b7e8007dc35def22] 172.17.5.148 - - [14/Jul/2016 07:38:57] "POST /v2.0/lbaas/pools.json HTTP/1.1" 500 394 0.091943
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1602974/+subscriptions
Follow ups