yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #66316
[Bug 1707913] [NEW] OVS driver - OVSFWPortNotFound when deleting VM port affects agent extension framework
Public bug reported:
I tried to execute following config/procedure, as a result,
OVSFWPortNotFound occurred when deleting VM instance. It affects l2
agent extension behavior.
[Conditions]
* master branch of devstack and neutron
* /etc/neutron/plugins/ml2/ml2_conf.ini
mechanism_drivers = openvswtich,linuxbridge
...
[security_groups]
firewall_driver = openvswitch
[How to reproduce]
1. source ~/devstack/openrc demo demo
2. openstack server create --flavor c1 --image cirros-0.3.5-x86_64-disk --nic net-id='3793bece-1cc0-457c-a90f-6cc64a96831c' test
3. openstack server create --flavor c1 --image cirros-0.3.5-x86_64-disk --nic net-id='3793bece-1cc0-457c-a90f-6cc64a96831c' test2
4. openstack server delete test
[/opt/stack/logs/q-agt.log]
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent Traceback (most recent call last):
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 2048, in rpc_loop
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent port_info, ovs_restarted)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 153, in wrapper
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent return f(*args, **kwargs)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 1650, in process_network_ports
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent port_info.get('updated', set()))
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 278, in setup_port_filters
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self.refresh_firewall(updated_devices)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 111, in decorated_function
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent *args, **kwargs)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 231, in refresh_firewall
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self._apply_port_filter(device_ids, update_filter=True)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 146, in _apply_port_filter
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self.firewall.process_trusted_ports(trusted_devices)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/linux/openvswitch_firewall/firewall.py", line 533, in process_trusted_ports
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self._initialize_egress_no_port_security(port_id)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/linux/openvswitch_firewall/firewall.py", line 607, in _initialize_egress_no_port_security
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent ovs_port = self.get_ovs_port(port_id)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/linux/openvswitch_firewall/firewall.py", line 414, in get_ovs_port
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent raise exceptions.OVSFWPortNotFound(port_id=port_id)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent OVSFWPortNotFound: Port fe6e71be-a506-4e1e-a832-e9c62356134a is not managed by this agent.
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent
[Affection to l2 agent extension behavior]
* Usual
delete_port() used to be called twice [1] and [2]
* Raised OVSFWPortNotFound
delete_port() is called only once from [1].
delete_port() from [2] isn't called because self.process_deleted_ports()[3] isn't called due to
this exception before called this method.
[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L1586
[2] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L436
[3] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L2031
** Affects: neutron
Importance: Undecided
Status: New
** Tags: ovs-fw
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1707913
Title:
OVS driver - OVSFWPortNotFound when deleting VM port affects agent
extension framework
Status in neutron:
New
Bug description:
I tried to execute following config/procedure, as a result,
OVSFWPortNotFound occurred when deleting VM instance. It affects l2
agent extension behavior.
[Conditions]
* master branch of devstack and neutron
* /etc/neutron/plugins/ml2/ml2_conf.ini
mechanism_drivers = openvswtich,linuxbridge
...
[security_groups]
firewall_driver = openvswitch
[How to reproduce]
1. source ~/devstack/openrc demo demo
2. openstack server create --flavor c1 --image cirros-0.3.5-x86_64-disk --nic net-id='3793bece-1cc0-457c-a90f-6cc64a96831c' test
3. openstack server create --flavor c1 --image cirros-0.3.5-x86_64-disk --nic net-id='3793bece-1cc0-457c-a90f-6cc64a96831c' test2
4. openstack server delete test
[/opt/stack/logs/q-agt.log]
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent Traceback (most recent call last):
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 2048, in rpc_loop
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent port_info, ovs_restarted)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 153, in wrapper
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent return f(*args, **kwargs)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 1650, in process_network_ports
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent port_info.get('updated', set()))
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 278, in setup_port_filters
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self.refresh_firewall(updated_devices)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 111, in decorated_function
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent *args, **kwargs)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 231, in refresh_firewall
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self._apply_port_filter(device_ids, update_filter=True)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/securitygroups_rpc.py", line 146, in _apply_port_filter
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self.firewall.process_trusted_ports(trusted_devices)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/linux/openvswitch_firewall/firewall.py", line 533, in process_trusted_ports
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent self._initialize_egress_no_port_security(port_id)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/linux/openvswitch_firewall/firewall.py", line 607, in _initialize_egress_no_port_security
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent ovs_port = self.get_ovs_port(port_id)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent File "/opt/stack/neutron/neutron/agent/linux/openvswitch_firewall/firewall.py", line 414, in get_ovs_port
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent raise exceptions.OVSFWPortNotFound(port_id=port_id)
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent OVSFWPortNotFound: Port fe6e71be-a506-4e1e-a832-e9c62356134a is not managed by this agent.
neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent
[Affection to l2 agent extension behavior]
* Usual
delete_port() used to be called twice [1] and [2]
* Raised OVSFWPortNotFound
delete_port() is called only once from [1].
delete_port() from [2] isn't called because self.process_deleted_ports()[3] isn't called due to
this exception before called this method.
[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L1586
[2] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L436
[3] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L2031
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1707913/+subscriptions