** Changed in: neutron Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1957794
Title: qrouter ns leak while last service port delete because of router gw port Status in neutron: Fix Released Bug description: While removing last port from the subnet on compute host with DVR then L3 agent is cleaning unneeded qrouter-* namespaces. When you have a different (even other user) VM on the same host that has port from the subnet that your router has a gateway then deleting of qrouter namespaces is not triggered. Scenario to reproduce: Two instances multinode devstack master; no dhcp agent (for simplicity); devstack default DVR router preconfiguration (public net as a default GW, private net as a subnet); two nodes: - devstack1 - dvr_snat node, - devstack2 - dvr node 1) create a VM with private network on devstack2 node as a demo user: (demo)$ openstack server create --net private --flavor cirros256 --image cirros-0.5.2-x86_64-disk test_private (demo)$ openstack server show test_private -c id +-------+--------------------------------------+ | Field | Value | +-------+--------------------------------------+ | id | 7e5bebfd-636d-4416-b2ce-7f16a7b720ca | +-------+--------------------------------------+ (demo)$ openstack port list --device-id 7e5bebfd-636d-4416-b2ce-7f16a7b720ca -c id +--------------------------------------+ | ID | +--------------------------------------+ | d359efe3-8075-483a-90ee-807595d8786a | +--------------------------------------+ There is proper tap interface and L3 agent creates qrouter-* namespace: stack@devstack2:~/$ sudo ip netns | grep qr qrouter-0a5fc7cf-0ed9-4fb9-921b-4ed95ef3924b (id: 0) stack@devstack2:~/$ ip a | grep d359 28: tapd359efe3-80: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel master ovs-system state UNKNOWN group default qlen 1000 stack@devstack2:~$ sudo ovs-vsctl get port tapd359efe3-80 tag 4 stack@devstack2:~$ sudo ovs-vsctl --format=table --columns=name,tag find port tag=4 name tag -------------- --- qr-c3ae7e60-aa 4 qr-7f7c0893-f7 4 tapd359efe3-80 4 2) create a VM with public network on devstack2 node as an admin user: (admin)$ openstack server create --net public --flavor cirros256 --image cirros-0.5.2-x86_64-disk test_public (admin)$ openstack server show test_public -c OS-EXT-SRV-ATTR:host -c id -c OS-EXT-STS:power_state -c OS-EXT-STS:vm_state +------------------------+--------------------------------------+ | Field | Value | +------------------------+--------------------------------------+ | OS-EXT-SRV-ATTR:host | devstack2 | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:vm_state | active | | id | 0622fd62-bb3e-4d36-bbcd-d0c8f8b14cc9 | +------------------------+--------------------------------------+ (admin)$ openstack port list --device-id 0622fd62-bb3e-4d36-bbcd-d0c8f8b14cc9 -c id +--------------------------------------+ | ID | +--------------------------------------+ | dc822c75-715e-4788-9589-3fff05ccc307 | +--------------------------------------+ stack@devstack2:~$ ip a | grep dc8 14: tapdc822c75-71: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state UNKNOWN group default qlen 1000 3) delete demo user test_private VM (demo)$ openstack server delete test_private VM is deleted but qrouter-* namespaces stays. One VM only exist (admin's one): stack@devstack2:~$ sudo virsh list --all Id Name State ----------------------------------- 2 instance-00000007 running stack@devstack2:~$ sudo ip netns | grep qr qrouter-0a5fc7cf-0ed9-4fb9-921b-4ed95ef3924b (id: 0) stack@devstack2:~$ stack@devstack2:~$ sudo ovs-vsctl --format=table --columns=name,tag find port tag=4 name tag -------------- --- qr-c3ae7e60-aa 4 qr-7f7c0893-f7 4 To clear this namespace you need to full resync L3 agent by agent restart or by disabling/enabling agent: (admin)$ openstack network agent list --host devstack2 --agent-type l3 -c ID -c Host +--------------------------------------+-----------+ | ID | Host | +--------------------------------------+-----------+ | 77b01aa0-de3b-4b6b-a40a-08031460a97f | devstack2 | +--------------------------------------+-----------+ (admin)$ openstack network agent set --disable 77b01aa0-de3b-4b6b-a40a-08031460a97f (admin)$ openstack network agent set --enable 77b01aa0-de3b-4b6b-a40a-08031460a97f and qrouter-* namespace disappear: stack@devstack2:~$ sudo ip netns | grep qr stack@devstack2:~$ sudo ovs-vsctl --format=table --columns=name,tag find port tag=4 name tag ---- --- stack@devstack2:~$ To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1957794/+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