Public bug reported: At the end of deleting a GW port for a router, l3_dvr_db.py will look for any more router gw ports on the external network. If there are none, then it calls delete_floatingip_agent_gateway_port [1]. This should fan out to all l3 agents on all compute nodes [2]. Each agent should then delete the port [3].
In some cases, the fip namespace and the gateway port are not deleted. I don't know where things are going wrong. This seems pretty straight-forward. Do some agents miss the fanout? We know at least some of them are getting the fanout. So, it is definitely being sent. When I checked, the port had been deleted from the database. The fact that a new one is created supports this because if one existed in the DB already then it would be returned. [1] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/db/l3_dvr_db.py#L179 [2] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py#L166 [3] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/agent/l3/dvr.py#L73 ** Affects: neutron Importance: High Status: Confirmed ** Tags: l3-dvr-backlog l3-ipam-dhcp ** Changed in: neutron Importance: Undecided => High ** Changed in: neutron Status: New => Confirmed ** Tags added: l3-dvr-backlog l3-ipam-dhcp ** Description changed: - At the end of deleting a GW port for a router, l3_dvr_db.py will look for any - more router gw ports on the external network. If there are none, then it calls - delete_floatingip_agent_gateway_port [1]. This should fan out to all l3 agents - on all compute nodes [2]. Each agent should then delete the port [3]. + At the end of deleting a GW port for a router, l3_dvr_db.py will look + for any more router gw ports on the external network. If there are + none, then it calls delete_floatingip_agent_gateway_port [1]. This + should fan out to all l3 agents on all compute nodes [2]. Each agent + should then delete the port [3]. - In some cases, the fip namespace and the gateway port are not deleted. I don't - know where things are going wrong. This seems pretty straight-forward. Do - some agents miss the fanout? We know at least some of them are getting the - fanout. So, it is definitely being sent. + In some cases, the fip namespace and the gateway port are not deleted. + I don't know where things are going wrong. This seems pretty + straight-forward. Do some agents miss the fanout? We know at least + some of them are getting the fanout. So, it is definitely being sent. - When I checked, the port had been deleted from the database. The fact that a - new one is created supports this because if one existed in the DB already then - it would be returned. + When I checked, the port had been deleted from the database. The fact + that a new one is created supports this because if one existed in the DB + already then it would be returned. + [1] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/db/l3_dvr_db.py#L179 [2] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py#L166 [3] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/agent/l3/dvr.py#L73 -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1597561 Title: L3 agent allows multiple gateway ports in fip namespace Status in neutron: Confirmed Bug description: At the end of deleting a GW port for a router, l3_dvr_db.py will look for any more router gw ports on the external network. If there are none, then it calls delete_floatingip_agent_gateway_port [1]. This should fan out to all l3 agents on all compute nodes [2]. Each agent should then delete the port [3]. In some cases, the fip namespace and the gateway port are not deleted. I don't know where things are going wrong. This seems pretty straight-forward. Do some agents miss the fanout? We know at least some of them are getting the fanout. So, it is definitely being sent. When I checked, the port had been deleted from the database. The fact that a new one is created supports this because if one existed in the DB already then it would be returned. [1] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/db/l3_dvr_db.py#L179 [2] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py#L166 [3] https://github.com/openstack/neutron/blob/d3cd20151a67289f023875de682a6d3c4ccee645/neutron/agent/l3/dvr.py#L73 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1597561/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

