yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #64370
[Bug 1694337] [NEW] Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
Public bug reported:
[Impact]
When using l3 ha and a router agent fails over, the interface holding
the network:router_gateway interface does not get its property
binding:host_id updated to reflect where the keepalived moved the
router.
[Steps to reproduce]
0) Deploy a cloud with l3ha enabled
- If familiar with juju, it's possible to use this bundle http://paste.ubuntu.com/24707730/ , but the deployment tool is not relevant
1) Once it's deployed, configure it and create a router see https://docs.openstack.org/mitaka/networking-guide/deploy-lb-ha-vrrp.html )
- This is the script used during the troubleshooting
-----8<------
#!/bin/bash -x
source novarc # admin
neutron net-create ext-net --router:external True
--provider:physical_network physnet1 --provider:network_type flat
neutron subnet-create ext-net 10.5.0.0/16 --name ext-subnet
--allocation-pool start=10.5.254.100,end=10.5.254.199 --disable-dhcp
--gateway 10.5.0.1 --dns-nameserver 10.5.0.3
keystone tenant-create --name demo 2>/dev/null
keystone user-role-add --user admin --tenant demo --role Admin 2>/dev/null
export TENANT_ID_DEMO=$(keystone tenant-list | grep demo | awk -F'|'
'{print $2}' | tr -d ' ' 2>/dev/null )
neutron net-create demo-net --tenant-id ${TENANT_ID_DEMO}
--provider:network_type vxlan
env OS_TENANT_NAME=demo neutron subnet-create demo-net 192.168.1.0/24 --name demo-subnet --gateway 192.168.1.1
env OS_TENANT_NAME=demo neutron router-create demo-router
env OS_TENANT_NAME=demo neutron router-interface-add demo-router demo-subnet
env OS_TENANT_NAME=demo neutron router-gateway-set demo-router ext-net
# verification
neutron net-list
neutron l3-agent-list-hosting-router demo-router
neutron router-port-list demo-router
----- 8< -------
2) Kill the associated master keepalived process for the router
ps aux | grep keepalived | grep $ROUTER_ID
kill $PID
3) Wait until "neutron l3-agent-list-hosting-router demo-router" shows the other host as active
4) Check the binding:host_id property for the interfaces of the router
for ID in `neutron port-list --device-id $ROUTER_ID | tail -n +4 | head -n -1| awk -F' ' '{print $2}' `; do neutron port-show $ID ; done
Expected results:
The interface where the device_owner is network:router_gateway has its
property binding:host_id set to where the keepalived process is master
Actual result:
The binding:host_id is never updated, it stays set with the value
obtainer during the creation of the port.
** Affects: neutron
Importance: Undecided
Assignee: Felipe Reyes (freyes)
Status: In Progress
** Tags: l3-ha sts
** Tags added: l3-ha sts
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1694337
Title:
Port information (binding:host_id) not updated for
network:router_gateway after qRouter failover
Status in neutron:
In Progress
Bug description:
[Impact]
When using l3 ha and a router agent fails over, the interface holding
the network:router_gateway interface does not get its property
binding:host_id updated to reflect where the keepalived moved the
router.
[Steps to reproduce]
0) Deploy a cloud with l3ha enabled
- If familiar with juju, it's possible to use this bundle http://paste.ubuntu.com/24707730/ , but the deployment tool is not relevant
1) Once it's deployed, configure it and create a router see https://docs.openstack.org/mitaka/networking-guide/deploy-lb-ha-vrrp.html )
- This is the script used during the troubleshooting
-----8<------
#!/bin/bash -x
source novarc # admin
neutron net-create ext-net --router:external True
--provider:physical_network physnet1 --provider:network_type flat
neutron subnet-create ext-net 10.5.0.0/16 --name ext-subnet
--allocation-pool start=10.5.254.100,end=10.5.254.199 --disable-dhcp
--gateway 10.5.0.1 --dns-nameserver 10.5.0.3
keystone tenant-create --name demo 2>/dev/null
keystone user-role-add --user admin --tenant demo --role Admin 2>/dev/null
export TENANT_ID_DEMO=$(keystone tenant-list | grep demo | awk -F'|'
'{print $2}' | tr -d ' ' 2>/dev/null )
neutron net-create demo-net --tenant-id ${TENANT_ID_DEMO}
--provider:network_type vxlan
env OS_TENANT_NAME=demo neutron subnet-create demo-net 192.168.1.0/24 --name demo-subnet --gateway 192.168.1.1
env OS_TENANT_NAME=demo neutron router-create demo-router
env OS_TENANT_NAME=demo neutron router-interface-add demo-router demo-subnet
env OS_TENANT_NAME=demo neutron router-gateway-set demo-router ext-net
# verification
neutron net-list
neutron l3-agent-list-hosting-router demo-router
neutron router-port-list demo-router
----- 8< -------
2) Kill the associated master keepalived process for the router
ps aux | grep keepalived | grep $ROUTER_ID
kill $PID
3) Wait until "neutron l3-agent-list-hosting-router demo-router" shows the other host as active
4) Check the binding:host_id property for the interfaces of the router
for ID in `neutron port-list --device-id $ROUTER_ID | tail -n +4 | head -n -1| awk -F' ' '{print $2}' `; do neutron port-show $ID ; done
Expected results:
The interface where the device_owner is network:router_gateway has its
property binding:host_id set to where the keepalived process is master
Actual result:
The binding:host_id is never updated, it stays set with the value
obtainer during the creation of the port.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1694337/+subscriptions
Follow ups
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Corey Bryant, 2017-08-31
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: James Page, 2017-08-10
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: James Page, 2017-08-10
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: James Page, 2017-08-10
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Launchpad Bug Tracker, 2017-08-09
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Launchpad Bug Tracker, 2017-08-09
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: James Page, 2017-07-05
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Edward Hope-Morley, 2017-07-05
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Felipe Reyes, 2017-06-22
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Eric Desrochers, 2017-06-22
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: Felipe Reyes, 2017-06-21
-
[Bug 1694337] Re: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
From: OpenStack Infra, 2017-06-01