From dfbe1fb7c510d556095a926fec6bfe6f4c153b47 Mon Sep 17 00:00:00 2001 From: Carl Baldwin Date: Thu, 23 Jun 2016 15:39:47 -0600 Subject: [PATCH] Fix code that's trying to read from a stale DB object Change-Id: Ib601235b56c553c29618a4dfdf0608a7b2784c6f Closes-Bug: #1594376 --- neutron/plugins/ml2/plugin.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py index 18eca37d79e..7a3065a7283 100644 --- a/neutron/plugins/ml2/plugin.py +++ b/neutron/plugins/ml2/plugin.py @@ -1053,13 +1053,16 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2, for ip in a.port.fixed_ips if ip.subnet_id != id]}} try: - self.update_port(context, a.port_id, data) + # NOTE Don't inline port_id; needed for PortNotFound. + port_id = a.port_id + self.update_port(context, port_id, data) except exc.PortNotFound: - LOG.debug("Port %s deleted concurrently", a.port_id) + # NOTE Attempting to access a.port_id here is an error. + LOG.debug("Port %s deleted concurrently", port_id) except Exception: with excutils.save_and_reraise_exception(): LOG.exception(_LE("Exception deleting fixed_ip " - "from port %s"), a.port_id) + "from port %s"), port_id) try: self.mechanism_manager.delete_subnet_postcommit(mech_context)