** 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
+   - 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
+   - 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
+     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
+     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.

** Patch added: "lp1694337_zesty.debdiff"
   
https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/1694337/+attachment/4900969/+files/lp1694337_zesty.debdiff

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

Reply via email to