[Bug 1694337] [NEW] Port information (binding:host_id) not updated for network:router_gateway after qRouter failover

Launchpad Bug Tracker 1694337 at bugs.launchpad.net
Thu Jun 22 14:57:13 UTC 2017


You have been subscribed to a public bug by Felipe Reyes (freyes):

[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.

[Regression Potential]
- This patch changes the UPDATE query to the port bindings in the database, a possible regression will express as failures in the query or binding:host_id property outdated.

** Affects: neutron
     Importance: Undecided
     Assignee: Felipe Reyes (freyes)
         Status: Fix Released

** Affects: neutron (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: neutron (Ubuntu Xenial)
     Importance: Undecided
     Assignee: Felipe Reyes (freyes)
         Status: In Progress

** Affects: neutron (Ubuntu Yakkety)
     Importance: Undecided
     Assignee: Felipe Reyes (freyes)
         Status: In Progress

** Affects: neutron (Ubuntu Zesty)
     Importance: Undecided
     Assignee: Felipe Reyes (freyes)
         Status: In Progress


** Tags: in-stable-newton in-stable-ocata l3-ha sts
-- 
Port information (binding:host_id) not updated for network:router_gateway after qRouter failover
https://bugs.launchpad.net/bugs/1694337
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list