← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1645620] [NEW] [FWaaS] update firewall policy with rule to empty returns 500

 

Public bug reported:

When firewall policy includes at least 1 firewall-rule and try to update empty
firewall_rules, following error occurred:

It should be aligned with how to remove rule_association table as
remove_rules.

[How to reprocude]
curl -s -X PUT -d '{"firewall_policy":{"firewall_rules":["50c87d7e-63c1-4911-9bee-d15455073c78"]}}' -H "x-auth-token:$TOKEN" 192.168.122.181:9696/v2.0/fwaas/firewall_policies/86a47474-f2d2-4a89-a4b4-22119fe6e459

{
  "firewall_policy": {
    "description": "",
    "firewall_rules": [
      "50c87d7e-63c1-4911-9bee-d15455073c78"
    ],
    "tenant_id": "36bc640624964521b494fd0bd46d2a6e",
    "public": false,
    "id": "86a47474-f2d2-4a89-a4b4-22119fe6e459",
    "project_id": "36bc640624964521b494fd0bd46d2a6e",
    "audited": false,
    "name": "policy1"
  }
}

curl -s -X PUT -d '{"firewall_policy":{"firewall_rules":[]}}' -H "x
-auth-token:$TOKEN"
192.168.122.181:9696/v2.0/fwaas/firewall_policies/86a47474-f2d2-4a89-a4b4-22119fe6e459

{
  "NeutronError": {
    "message": "Request Failed: internal server error while processing your request.",
    "type": "HTTPInternalServerError",
    "detail": ""
  }
}

[Error log on q-svc.log]
2016-11-29 16:40:10.868 ERROR neutron.api.v2.resource [req-1c906036-e041-43fd-919a-1bd1bc1ebc81 admin 36bc640624964521b494fd0bd46d2a6e] update failed: No details.
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource Traceback (most recent call last):
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     result = method(request=request, **args)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 612, in update
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return self._update(request, id, body, **kwargs)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 92, in wrapped
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     setattr(e, '_RETRY_EXCEEDED', True)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.force_reraise()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.force_reraise()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 128, in wrapped
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     traceback.format_exc())
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.force_reraise()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 123, in wrapped
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return f(*dup_args, **dup_kwargs)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 660, in _update
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     obj = obj_updater(request.context, id, **kwargs)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin_v2.py", line 343, in update_firewall_policy
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self).update_firewall_policy(context, id, firewall_policy)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron-fwaas/neutron_fwaas/db/firewall/v2/firewall_db_v2.py", line 631, in update_firewall_policy
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._set_rules_for_policy(context, fwp_db, fwp)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron-fwaas/neutron_fwaas/db/firewall/v2/firewall_db_v2.py", line 600, in _set_rules_for_policy
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     fwp_db.rule_associations.reorder()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 490, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.rollback()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 487, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.commit()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 392, in commit
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._prepare_impl()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.session.flush()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2019, in flush
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._flush(objects)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2137, in _flush
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     transaction.rollback(_capture_exception=True)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 487, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.commit()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 392, in commit
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._prepare_impl()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.session.flush()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2019, in flush
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._flush(objects)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2137, in _flush
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     transaction.rollback(_capture_exception=True)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2101, in _flush
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     flush_context.execute()
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 373, in execute
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     rec.execute(self)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 487, in execute
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.dependency_processor.process_saves(uow, states)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/dependency.py", line 558, in process_saves
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     uowcommit, False)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/dependency.py", line 575, in _synchronize
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     sync.clear(dest, self.mapper, self.prop.synchronize_pairs)
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/sync.py", line 74, in clear
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     (r, orm_util.state_str(dest))
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource AssertionError: Dependency rule tried to blank-out primary key column 'firewall_policy_rule_associations_v2.firewall_policy_id' on instance '<FirewallPolicyRuleAssociation at 0x7fbcbdcb9590>'
2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource

** Affects: neutron
     Importance: Undecided
     Assignee: Yushiro FURUKAWA (y-furukawa-2)
         Status: New


** Tags: fwaas

** Changed in: neutron
     Assignee: (unassigned) => Yushiro FURUKAWA (y-furukawa-2)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1645620

Title:
  [FWaaS] update firewall policy with rule to empty returns 500

Status in neutron:
  New

Bug description:
  When firewall policy includes at least 1 firewall-rule and try to update empty
  firewall_rules, following error occurred:

  It should be aligned with how to remove rule_association table as
  remove_rules.

  [How to reprocude]
  curl -s -X PUT -d '{"firewall_policy":{"firewall_rules":["50c87d7e-63c1-4911-9bee-d15455073c78"]}}' -H "x-auth-token:$TOKEN" 192.168.122.181:9696/v2.0/fwaas/firewall_policies/86a47474-f2d2-4a89-a4b4-22119fe6e459

  {
    "firewall_policy": {
      "description": "",
      "firewall_rules": [
        "50c87d7e-63c1-4911-9bee-d15455073c78"
      ],
      "tenant_id": "36bc640624964521b494fd0bd46d2a6e",
      "public": false,
      "id": "86a47474-f2d2-4a89-a4b4-22119fe6e459",
      "project_id": "36bc640624964521b494fd0bd46d2a6e",
      "audited": false,
      "name": "policy1"
    }
  }

  curl -s -X PUT -d '{"firewall_policy":{"firewall_rules":[]}}' -H "x
  -auth-token:$TOKEN"
  192.168.122.181:9696/v2.0/fwaas/firewall_policies/86a47474-f2d2-4a89-a4b4-22119fe6e459

  {
    "NeutronError": {
      "message": "Request Failed: internal server error while processing your request.",
      "type": "HTTPInternalServerError",
      "detail": ""
    }
  }

  [Error log on q-svc.log]
  2016-11-29 16:40:10.868 ERROR neutron.api.v2.resource [req-1c906036-e041-43fd-919a-1bd1bc1ebc81 admin 36bc640624964521b494fd0bd46d2a6e] update failed: No details.
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource Traceback (most recent call last):
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     result = method(request=request, **args)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 612, in update
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return self._update(request, id, body, **kwargs)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 92, in wrapped
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     setattr(e, '_RETRY_EXCEEDED', True)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.force_reraise()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.force_reraise()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 128, in wrapped
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     traceback.format_exc())
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.force_reraise()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 123, in wrapped
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     return f(*dup_args, **dup_kwargs)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 660, in _update
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     obj = obj_updater(request.context, id, **kwargs)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron-fwaas/neutron_fwaas/services/firewall/fwaas_plugin_v2.py", line 343, in update_firewall_policy
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self).update_firewall_policy(context, id, firewall_policy)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron-fwaas/neutron_fwaas/db/firewall/v2/firewall_db_v2.py", line 631, in update_firewall_policy
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._set_rules_for_policy(context, fwp_db, fwp)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/opt/stack/neutron-fwaas/neutron_fwaas/db/firewall/v2/firewall_db_v2.py", line 600, in _set_rules_for_policy
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     fwp_db.rule_associations.reorder()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 490, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.rollback()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 487, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.commit()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 392, in commit
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._prepare_impl()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.session.flush()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2019, in flush
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._flush(objects)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2137, in _flush
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     transaction.rollback(_capture_exception=True)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 487, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.commit()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 392, in commit
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._prepare_impl()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.session.flush()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2019, in flush
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self._flush(objects)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2137, in _flush
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     transaction.rollback(_capture_exception=True)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2101, in _flush
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     flush_context.execute()
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 373, in execute
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     rec.execute(self)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 487, in execute
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     self.dependency_processor.process_saves(uow, states)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/dependency.py", line 558, in process_saves
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     uowcommit, False)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/dependency.py", line 575, in _synchronize
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     sync.clear(dest, self.mapper, self.prop.synchronize_pairs)
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/sync.py", line 74, in clear
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource     (r, orm_util.state_str(dest))
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource AssertionError: Dependency rule tried to blank-out primary key column 'firewall_policy_rule_associations_v2.firewall_policy_id' on instance '<FirewallPolicyRuleAssociation at 0x7fbcbdcb9590>'
  2016-11-29 16:40:10.868 TRACE neutron.api.v2.resource

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1645620/+subscriptions


Follow ups