yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #61367
[Bug 1658060] Re: FirewallNotFound exceptions when deleting the firewall in FWaaS-DVR
Reviewed: https://review.openstack.org/429923
Committed: https://git.openstack.org/cgit/openstack/neutron-fwaas/commit/?id=6bf84e7afbf07ab33907150d59d0b33d053240b6
Submitter: Jenkins
Branch: master
commit 6bf84e7afbf07ab33907150d59d0b33d053240b6
Author: Cedric Brandily <zzelle@xxxxxxxxx>
Date: Tue Feb 7 00:16:08 2017 +0100
Do not complain in firewall_group_deleted if the FW is already deleted
Currently firewall_group_deleted[1] crashs if the firewall is already
deleted or deleted concurrently during firewall_deleted call. We should
avoid such behavior as there is no reason to crash if someone already
did the job for us (ie: delete the FW).
Moreover such crash is costly because it triggers a service-sync on FWaaS
l3-reference agent (at least). Typically on a L3-DVR deployment, all
firewall_deleted calls except the first one will fail so quite every
L3-DVR will perform a FWaaS service-sync.
This change updates firewall_group_deleted in order to succeed if the
firewall is already deleted or if the firewall is deleted concurrently.
[1] neutron.services.firewall.fwaas_plugin_v2.FirewallCallbacks
Change-Id: Ic0b228896c8129205224417506bb06471e432955
Closes-Bug: #1658060
** 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/1658060
Title:
FirewallNotFound exceptions when deleting the firewall in FWaaS-DVR
Status in neutron:
Fix Released
Bug description:
We have four nodes, and we deploy both the FWaaS and DVR services.
When deleting the firewall, we always get three FirewallNotFound
exceptions. At present, we believe that, in DVR environment, evey node
would run a L3-agent service. This causes a plugin corresponding to
multiple agents. And each agent will call back the plugin's
firewall_deleted() (neutron_fwaas/services/firewall/fwaas_plugin.py)
to delete the instance in DB, but only the first agent will succeed.
How to reproduce:
- first create a firewall applied to a DVR router
- then delete it
$ neutron router-show test-fwaas
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| distributed | True |
| external_gateway_info | |
| ha | False |
| id | cfa3e65e-d101-4cc7-80e5-39daf72c6572 |
| name | test-fwaas |
| routes | |
| status | ACTIVE |
| tenant_id | fc170b1b8a9a467b9e1a63d85ced5a86 |
+-----------------------+--------------------------------------+
$ neutron firewall-create --name fw --router test-fwaas policy
Created a new firewall:
+--------------------+--------------------------------------+
| Field | Value |
+--------------------+--------------------------------------+
| admin_state_up | True |
| description | |
| firewall_policy_id | 1eb3fff7-240f-4f9d-adf6-766e2cad7f59 |
| id | afd38a9e-cf0a-4667-94e0-853a888fd981 |
| name | fw |
| router_ids | cfa3e65e-d101-4cc7-80e5-39daf72c6572 |
| status | CREATED |
| tenant_id | fc170b1b8a9a467b9e1a63d85ced5a86 |
+--------------------+--------------------------------------+
$ neutron firewall-show fw
+--------------------+--------------------------------------+
| Field | Value |
+--------------------+--------------------------------------+
| admin_state_up | True |
| description | |
| firewall_policy_id | 1eb3fff7-240f-4f9d-adf6-766e2cad7f59 |
| id | afd38a9e-cf0a-4667-94e0-853a888fd981 |
| name | fw |
| router_ids | cfa3e65e-d101-4cc7-80e5-39daf72c6572 |
| status | ACTIVE |
| tenant_id | fc170b1b8a9a467b9e1a63d85ced5a86 |
+--------------------+--------------------------------------+
$ neutron firewall-delete fw
$ less neutron-service_error.log
2017-01-20 19:46:11.593 19338 ERROR oslo_messaging.rpc.dispatcher [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] Exception during message handling: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher executor_callback))
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher executor_callback)
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args)
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin.py", line 67, in firewall_deleted
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher fw_db = self.plugin._get_firewall(context, firewall_id)
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/neutron-fwaas/neutron_fwaas/db/firewall/firewall_db.py", line 101, in _get_firewall
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher raise fw_ext.FirewallNotFound(firewall_id=id)
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher FirewallNotFound: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.
2017-01-20 19:46:11.593 19338 TRACE oslo_messaging.rpc.dispatcher
2017-01-20 19:46:11.594 19338 ERROR oslo_messaging._drivers.common [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] Returning exception Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found. to caller
2017-01-20 19:46:11.594 19338 ERROR oslo_messaging._drivers.common [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] ['Traceback (most recent call last):\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatc
h_and_reply\n executor_callback))\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch\n executor_callback)\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rp
c/dispatcher.py", line 130, in _do_dispatch\n result = func(ctxt, **new_args)\n', ' File "/opt/openstack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin.py", line 67, in firewall_deleted\n fw_db = self.plugin._get_firewall(context, firewall_id)\n', ' Fi
le "/opt/openstack/neutron-fwaas/neutron_fwaas/db/firewall/firewall_db.py", line 101, in _get_firewall\n raise fw_ext.FirewallNotFound(firewall_id=id)\n', 'FirewallNotFound: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.\n']
2017-01-20 19:46:11.595 19338 ERROR oslo_messaging.rpc.dispatcher [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] Exception during message handling: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher executor_callback))
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher executor_callback)
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args)
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin.py", line 67, in firewall_deleted
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher fw_db = self.plugin._get_firewall(context, firewall_id)
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/neutron-fwaas/neutron_fwaas/db/firewall/firewall_db.py", line 101, in _get_firewall
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher raise fw_ext.FirewallNotFound(firewall_id=id)
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher FirewallNotFound: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.
2017-01-20 19:46:11.595 19338 TRACE oslo_messaging.rpc.dispatcher
2017-01-20 19:46:11.596 19338 ERROR oslo_messaging._drivers.common [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] Returning exception Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found. to caller
2017-01-20 19:46:11.596 19338 ERROR oslo_messaging._drivers.common [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] ['Traceback (most recent call last):\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatc
h_and_reply\n executor_callback))\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch\n executor_callback)\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rp
c/dispatcher.py", line 130, in _do_dispatch\n result = func(ctxt, **new_args)\n', ' File "/opt/openstack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin.py", line 67, in firewall_deleted\n fw_db = self.plugin._get_firewall(context, firewall_id)\n', ' Fi
le "/opt/openstack/neutron-fwaas/neutron_fwaas/db/firewall/firewall_db.py", line 101, in _get_firewall\n raise fw_ext.FirewallNotFound(firewall_id=id)\n', 'FirewallNotFound: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.\n']
2017-01-20 19:46:11.599 19338 ERROR oslo_messaging.rpc.dispatcher [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] Exception during message handling: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher executor_callback))
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher executor_callback)
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args)
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin.py", line 67, in firewall_deleted
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher fw_db = self.plugin._get_firewall(context, firewall_id)
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher File "/opt/openstack/neutron-fwaas/neutron_fwaas/db/firewall/firewall_db.py", line 101, in _get_firewall
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher raise fw_ext.FirewallNotFound(firewall_id=id)
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher FirewallNotFound: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.
2017-01-20 19:46:11.599 19338 TRACE oslo_messaging.rpc.dispatcher
2017-01-20 19:46:11.600 19338 ERROR oslo_messaging._drivers.common [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] Returning exception Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found. to caller
2017-01-20 19:46:11.600 19338 ERROR oslo_messaging._drivers.common [req-c4af8425-b05a-4c4e-98e0-4dabe0057df7 ] ['Traceback (most recent call last):\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply\n executor_callback))\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch\n executor_callback)\n', ' File "/opt/openstack/.venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch\n result = func(ctxt, **new_args)\n', ' File "/opt/openstack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin.py", line 67, in firewall_deleted\n fw_db = self.plugin._get_firewall(context, firewall_id)\n', ' File "/opt/openstack/neutron-fwaas/neutron_fwaas/db/firewall/firewall_db.py", line 101, in _get_firewall\n raise fw_ext.FirewallNotFound(firewall_id=id)\n', 'FirewallNotFound: Firewall afd38a9e-cf0a-4667-94e0-853a888fd981 could not be found.\n']
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1658060/+subscriptions
References