[Expired for neutron because there has been no activity for 60 days.]

** Changed in: neutron
       Status: Incomplete => Expired

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

Title:
  Midonet plugin deletes port even when deletion of Quantum port fails

Status in OpenStack Neutron (virtual network service):
  Expired

Bug description:
  Context: Using midonet as the plugin for quantum with a grizzly OS 
deployment, we have a VM instance with a floating ip associated through the 
horizon dashboard.
  When terminating this VM instance without first disassociation of the 
floating ip, the delete_port() in quantum API call fails because of the 
floating ip association still there.

  In this situation, the corresponding midonet port is nevertheless
  deleted by the midonet plugin although it should not. This creates
  inconsistency of state and induces errors when the dashboard tries to
  retrieve the floating IPs.

  
  2013-05-27 12:33:11    DEBUG [midonetclient.api_lib] do_request: content=
  2013-05-27 12:33:11    DEBUG [quantum.db.db_base_plugin_v2] Recycle 10.0.0.6
  2013-05-27 12:33:11    DEBUG [quantum.db.db_base_plugin_v2] Recycle: first 
match for 10.0.0.7-10.0.0.254
  2013-05-27 12:33:11    DEBUG [quantum.db.db_base_plugin_v2] Recycle: last 
match for 10.0.0.5-10.0.0.5
  2013-05-27 12:33:11    DEBUG [quantum.db.db_base_plugin_v2] Recycle: merged 
10.0.0.5-10.0.0.5 and 10.0.0.7-10.0.0.254
  2013-05-27 12:33:11    DEBUG [quantum.db.db_base_plugin_v2] Delete allocated 
IP 10.0.0.6 
(80689f94-a474-486a-bcf5-ef877cb6877e/38fd3e94-7a05-4453-9bf7-2c39e0b72c2c)
  2013-05-27 12:33:11    ERROR [quantum.api.v2.resource] delete failed
  Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/quantum/api/v2/resource.py", line 
82, in resource
      result = method(request=request, **args)
    File "/usr/lib/python2.7/dist-packages/quantum/api/v2/base.py", line 395, 
in delete
      obj_deleter(request.context, id, **kwargs)
    File "/usr/lib/python2.7/dist-packages/quantum/plugins/midonet/plugin.py", 
line 516, in delete_port
      return super(MidonetPluginV2, self).delete_port(context, id)
    File "/usr/lib/python2.7/dist-packages/quantum/db/db_base_plugin_v2.py", 
line 1359, in delete_port
      self._delete_port(context, id)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 
449, in __exit__
      self.commit()
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 
361, in commit
      self._prepare_impl()
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 
340, in _prepare_impl
      self.session.flush()
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 
1718, in flush
      self._flush(objects)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 
1789, in _flush
      flush_context.execute()
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 
331, in execute
      rec.execute(self)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 
498, in execute
      uow
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 
115, in delete_obj
      cached_connections, mapper, table, delete)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 
671, in _emit_delete_statements
      connection.execute(statement, del_objects)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1449, in execute
      params)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1584, in _execute_clauseelement
      compiled_sql, distilled_params
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1698, in _execute_context
      context)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1691, in _execute_context
      context)
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 
331, in do_execute
      cursor.execute(statement, parameters)
    File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in 
execute
      self.errorhandler(self, exc, value)
    File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in 
defaulterrorhandler
      raise errorclass, errorvalue
  IntegrityError: (IntegrityError) (1451, 'Cannot delete or update a parent 
row: a foreign key constraint fails (`quantum`.`floatingips`, CONSTRAINT 
`floatingips_ibfk_2` FOREIGN KEY (`fixed_port_id`) REFERENCES `ports` (`id`))') 
'DELETE FROM ports WHERE ports.id = %s' ('11cfa
  808-bf86-463d-93ab-d6f16587c6a1',)

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1184497/+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

Reply via email to