← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1602974] Re: [stable/liberty] LBaaS v2 haproxy: need a way to find status of listener

 

This is probably bc you're using Octavia in the backend.  Octavia spins
up nova VMs to host the load balancers and if vt-x (nested
virtualization) is not enabled, the VM provisioning time will be a long
time.  There is an effort to have containers host instead of VMs via
nova-lxd.  However, this is some time off.  If you could check vt-x in
your environment and verify, please do.  In the meantime I'm going to
mark this as invalid.  If you find it is, not feel free to mark it back.

** Changed in: neutron
       Status: New => Invalid

-- 
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:
  Invalid

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


References