** Patch added: "lp1694337_xenial.debdiff" https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/1694337/+attachment/4900971/+files/lp1694337_xenial.debdiff
** Description changed: [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. + + [Other Info] + + The patches for zesty and yakkety are a direct backport from + stable/ocata and stable/newton respectively. The patch for xenial is NOT + merged in stable/xenial because it's already EOL. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1694337 Title: Port information (binding:host_id) not updated for network:router_gateway after qRouter failover To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1694337/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
