Public bug reported:

Description of problem:
=======================
IPv6 VIP remains in ERROR state due to haproxy cannot bind socket.

neutron.services.loadbalancer.agent.agent_manager Traceback (most recent call 
last):
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/agent/agent_manager.py",
 line 214, in create_vip
neutron.services.loadbalancer.agent.agent_manager     driver.create_vip(vip)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 318, in create_vip
neutron.services.loadbalancer.agent.agent_manager     
self._refresh_device(vip['pool_id'])
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 315, in _refresh_device
neutron.services.loadbalancer.agent.agent_manager     
self.deploy_instance(logical_config)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/openstack/common/lockutils.py", line 
249, in inner
neutron.services.loadbalancer.agent.agent_manager     return f(*args, **kwargs)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 311, in deploy_instance
neutron.services.loadbalancer.agent.agent_manager     
self.create(logical_config)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 92, in create
neutron.services.loadbalancer.agent.agent_manager     
self._spawn(logical_config)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 115, in _spawn
neutron.services.loadbalancer.agent.agent_manager     ns.netns.execute(cmd)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/agent/linux/ip_lib.py", line 550, in 
execute
neutron.services.loadbalancer.agent.agent_manager     
check_exit_code=check_exit_code, extra_ok_codes=extra_ok_codes)
neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/agent/linux/utils.py", line 84, in 
execute
neutron.services.loadbalancer.agent.agent_manager     raise RuntimeError(m)
neutron.services.loadbalancer.agent.agent_manager RuntimeError: 
neutron.services.loadbalancer.agent.agent_manager Command: ['sudo', 
'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec',


Version-Release number of selected component (if applicable):
=============================================================
openstack-neutron-2014.2.1-2.el7ost.noarch
haproxy-1.5.2-3.el7_0.x86_64

How reproducible:
=================
2/2

Steps to Reproduce:
===================
1. Spawn Two instances and wait for them to become active
    Via tenant_a:
    nova boot tenant_a_instance --flavor m1.small --image <image_id> 
--min-count 2 --key-name tenant_a_keypair --security-groups default --nic 
net-id=<internal_ipv4_a_id> --nic net-id=<tenant_a_radvd_stateful_id>

2. Retrive your instances IPv6 addresses, tenant id and the subnet id you are 
about to use.
   You may use any IPv6 subnet, in this example we'll use 
tenant_a_radvd_stateful_subnet
   # nova list | awk '/tenant_a_instance/ {print $12}' | cut -d"=" -f2 | sed -e 
s/\;\//
   # neutron subnet-list | awk '/tenant_a_radvd_stateful_subnet/ {print $2}'

3. Create a LBaaS pool
   # neutron lb-pool-create --lb-method ROUND_ROBIN --name Ipv6_LBaaS 
--protocol HTTP --subnet-id c54f8745-2aba-42da-8845-15050db1d5d1

4. Add members to the pool
   # neutron lb-member-create Ipv6_LBaaS --address 
2001:65:65:65:f816:3eff:feda:b05e --protocol-port 80
   # neutron lb-member-create Ipv6_LBaaS --address 
2001:65:65:65:f816:3eff:fe82:5d8 --protocol-port 80

5. Create a VIP:
   # neutron lb-vip-create Ipv6_LBaaS --name Ipv6_LBaaS_VIP --protocol-port 80 
--protocol HTTP --subnet-id 0458273a-efe8-4d37-b2a0-e11cbd5e4d13

6. Check the VIP status:
   # neutron lb-vip-show Ipv6_LBaaS_VIP | grep status

Actual results:
===============
1. status = ERROR

2. lbaas-agent.log (attached):
 
TRACE neutron.services.loadbalancer.agent.agent_manager Stderr: '[ALERT] 
349/101731 (20878) : Starting frontend fcb9db64-e877-4e95-a86f-fed6d1b244c2: 
cannot bind socket [2001:64:64:64::a:80]\n'

Expected results:
=================
IPv6 VIP should work.

Additional info:
================
1. Tested with RHEL7
2. haproxy configuration:
global
        daemon
        user nobody
        group haproxy
        log /dev/log local0
        log /dev/log local1 notice
        stats socket 
/var/lib/neutron/lbaas/2c18a738-05f4-4099-8348-94575c9ed290/sock mode 0666 
level user
defaults
        log global
        retries 3
        option redispatch
        timeout connect 5000
        timeout client 50000
        timeout server 50000
frontend cb833240-d5ed-43b9-9ef1-5bc70e961366
        option tcplog
        bind 2001:65:65:65:f816:3eff:fe86:d7ce:80
        mode http
        default_backend 2c18a738-05f4-4099-8348-94575c9ed290
        option forwardfor
backend 2c18a738-05f4-4099-8348-94575c9ed290
        mode http
        balance roundrobin
        option forwardfor
        timeout check 3s
        option httpchk GET /
        http-check expect rstatus 200
        server a2b475f0-3247-49d4-8e04-bf570ffc9fb2 
2001:65:65:65:f816:3eff:fe82:5d8:80 weight 1 check inter 3s fall 1
        server ab96b468-3950-47ea-a37b-f9b9fab7485b 
2001:65:65:65:f816:3eff:feda:b05e:80 weight 1 check inter 3s fall 1

** Affects: neutron
     Importance: Undecided
         Status: New

** Attachment added: "lbaas-agent.log"
   
https://bugs.launchpad.net/bugs/1403001/+attachment/4282042/+files/lbaas-agent.log

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1403001

Title:
  LBaaS VIP does not work with IPv6 addresses because haproxy cannot
  bind socket

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  Description of problem:
  =======================
  IPv6 VIP remains in ERROR state due to haproxy cannot bind socket.

  neutron.services.loadbalancer.agent.agent_manager Traceback (most recent call 
last):
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/agent/agent_manager.py",
 line 214, in create_vip
  neutron.services.loadbalancer.agent.agent_manager     driver.create_vip(vip)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 318, in create_vip
  neutron.services.loadbalancer.agent.agent_manager     
self._refresh_device(vip['pool_id'])
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 315, in _refresh_device
  neutron.services.loadbalancer.agent.agent_manager     
self.deploy_instance(logical_config)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/openstack/common/lockutils.py", line 
249, in inner
  neutron.services.loadbalancer.agent.agent_manager     return f(*args, 
**kwargs)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 311, in deploy_instance
  neutron.services.loadbalancer.agent.agent_manager     
self.create(logical_config)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 92, in create
  neutron.services.loadbalancer.agent.agent_manager     
self._spawn(logical_config)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py",
 line 115, in _spawn
  neutron.services.loadbalancer.agent.agent_manager     ns.netns.execute(cmd)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/agent/linux/ip_lib.py", line 550, in 
execute
  neutron.services.loadbalancer.agent.agent_manager     
check_exit_code=check_exit_code, extra_ok_codes=extra_ok_codes)
  neutron.services.loadbalancer.agent.agent_manager   File 
"/usr/lib/python2.7/site-packages/neutron/agent/linux/utils.py", line 84, in 
execute
  neutron.services.loadbalancer.agent.agent_manager     raise RuntimeError(m)
  neutron.services.loadbalancer.agent.agent_manager RuntimeError: 
  neutron.services.loadbalancer.agent.agent_manager Command: ['sudo', 
'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec',

  
  Version-Release number of selected component (if applicable):
  =============================================================
  openstack-neutron-2014.2.1-2.el7ost.noarch
  haproxy-1.5.2-3.el7_0.x86_64

  How reproducible:
  =================
  2/2

  Steps to Reproduce:
  ===================
  1. Spawn Two instances and wait for them to become active
      Via tenant_a:
      nova boot tenant_a_instance --flavor m1.small --image <image_id> 
--min-count 2 --key-name tenant_a_keypair --security-groups default --nic 
net-id=<internal_ipv4_a_id> --nic net-id=<tenant_a_radvd_stateful_id>

  2. Retrive your instances IPv6 addresses, tenant id and the subnet id you are 
about to use.
     You may use any IPv6 subnet, in this example we'll use 
tenant_a_radvd_stateful_subnet
     # nova list | awk '/tenant_a_instance/ {print $12}' | cut -d"=" -f2 | sed 
-e s/\;\//
     # neutron subnet-list | awk '/tenant_a_radvd_stateful_subnet/ {print $2}'

  3. Create a LBaaS pool
     # neutron lb-pool-create --lb-method ROUND_ROBIN --name Ipv6_LBaaS 
--protocol HTTP --subnet-id c54f8745-2aba-42da-8845-15050db1d5d1

  4. Add members to the pool
     # neutron lb-member-create Ipv6_LBaaS --address 
2001:65:65:65:f816:3eff:feda:b05e --protocol-port 80
     # neutron lb-member-create Ipv6_LBaaS --address 
2001:65:65:65:f816:3eff:fe82:5d8 --protocol-port 80

  5. Create a VIP:
     # neutron lb-vip-create Ipv6_LBaaS --name Ipv6_LBaaS_VIP --protocol-port 
80 --protocol HTTP --subnet-id 0458273a-efe8-4d37-b2a0-e11cbd5e4d13

  6. Check the VIP status:
     # neutron lb-vip-show Ipv6_LBaaS_VIP | grep status

  Actual results:
  ===============
  1. status = ERROR

  2. lbaas-agent.log (attached):
   
  TRACE neutron.services.loadbalancer.agent.agent_manager Stderr: '[ALERT] 
349/101731 (20878) : Starting frontend fcb9db64-e877-4e95-a86f-fed6d1b244c2: 
cannot bind socket [2001:64:64:64::a:80]\n'

  Expected results:
  =================
  IPv6 VIP should work.

  Additional info:
  ================
  1. Tested with RHEL7
  2. haproxy configuration:
  global
          daemon
          user nobody
          group haproxy
          log /dev/log local0
          log /dev/log local1 notice
          stats socket 
/var/lib/neutron/lbaas/2c18a738-05f4-4099-8348-94575c9ed290/sock mode 0666 
level user
  defaults
          log global
          retries 3
          option redispatch
          timeout connect 5000
          timeout client 50000
          timeout server 50000
  frontend cb833240-d5ed-43b9-9ef1-5bc70e961366
          option tcplog
          bind 2001:65:65:65:f816:3eff:fe86:d7ce:80
          mode http
          default_backend 2c18a738-05f4-4099-8348-94575c9ed290
          option forwardfor
  backend 2c18a738-05f4-4099-8348-94575c9ed290
          mode http
          balance roundrobin
          option forwardfor
          timeout check 3s
          option httpchk GET /
          http-check expect rstatus 200
          server a2b475f0-3247-49d4-8e04-bf570ffc9fb2 
2001:65:65:65:f816:3eff:fe82:5d8:80 weight 1 check inter 3s fall 1
          server ab96b468-3950-47ea-a37b-f9b9fab7485b 
2001:65:65:65:f816:3eff:feda:b05e:80 weight 1 check inter 3s fall 1

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1403001/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to