Public bug reported:

If a VM with a floating IP is deleted while concurrently deleting the
floating IP (i.e. "nova delete" and "neutron floatingip-delete") the VM
may go into error state.

Nova receives a 500 error code from neutron because neutron fails to
delete the port and the following stack is observed:

2015-11-04 21:48:37.447 17275 ERROR neutron.api.v2.resource 
[req-764172bc-4938-440d-9e6a-dd4c0f120f1b ] delete failed
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource Traceback (most 
recent call last):
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 83, 
in resource
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     result = 
method(request=request, **args)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/base.py", line 490, in 
delete
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
obj_deleter(request.context, id, **kwargs)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/oslo_db/api.py", line 131, in wrapper
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py", line 
1272, in delete_port
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     context, id, 
do_notify=False)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/db/l3_dvr_db.py", line 274, 
in disassociate_floatingips
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
do_notify=do_notify)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/db/l3_db.py", line 1361, in 
disassociate_floatingips
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     context, 
port_id)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/db/l3_db.py", line 1088, in 
disassociate_floatingips
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     'router_id': 
None})
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 483, 
in __exit__
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     self.rollback()
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 
60, in __exit__
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
compat.reraise(exc_type, exc_value, exc_tb)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 480, 
in __exit__
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     self.commit()
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 385, 
in commit
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self._prepare_impl()
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 365, 
in _prepare_impl
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self.session.flush()
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 
1986, in flush
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self._flush(objects)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 
2104, in _flush
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
transaction.rollback(_capture_exception=True)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 
60, in __exit__
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
compat.reraise(exc_type, exc_value, exc_tb)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 
2068, in _flush
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
flush_context.execute()
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 
372, in execute
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
rec.execute(self)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 
526, in execute
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     uow
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 
61, in save_obj
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     mapper, table, 
update)
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 
537, in _emit_update_statements
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
(table.description, len(update), rows))
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource StaleDataError: 
UPDATE statement on table 'floatingips' expected to update 1 row(s); 0 were 
matched.
2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource


Version: stable/kilo

** Affects: neutron
     Importance: Undecided
         Status: New

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

Title:
  StaleDataError in disassociate_floatingips

Status in neutron:
  New

Bug description:
  If a VM with a floating IP is deleted while concurrently deleting the
  floating IP (i.e. "nova delete" and "neutron floatingip-delete") the
  VM may go into error state.

  Nova receives a 500 error code from neutron because neutron fails to
  delete the port and the following stack is observed:

  2015-11-04 21:48:37.447 17275 ERROR neutron.api.v2.resource 
[req-764172bc-4938-440d-9e6a-dd4c0f120f1b ] delete failed
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource Traceback (most 
recent call last):
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 83, 
in resource
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     result = 
method(request=request, **args)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/api/v2/base.py", line 490, in 
delete
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
obj_deleter(request.context, id, **kwargs)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/oslo_db/api.py", line 131, in wrapper
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     return 
f(*args, **kwargs)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py", line 
1272, in delete_port
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     context, id, 
do_notify=False)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/db/l3_dvr_db.py", line 274, 
in disassociate_floatingips
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
do_notify=do_notify)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/db/l3_db.py", line 1361, in 
disassociate_floatingips
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     context, 
port_id)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/neutron/db/l3_db.py", line 1088, in 
disassociate_floatingips
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     'router_id': 
None})
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 483, 
in __exit__
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self.rollback()
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 
60, in __exit__
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
compat.reraise(exc_type, exc_value, exc_tb)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 480, 
in __exit__
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     self.commit()
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 385, 
in commit
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self._prepare_impl()
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 365, 
in _prepare_impl
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self.session.flush()
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 
1986, in flush
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
self._flush(objects)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 
2104, in _flush
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
transaction.rollback(_capture_exception=True)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 
60, in __exit__
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
compat.reraise(exc_type, exc_value, exc_tb)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 
2068, in _flush
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
flush_context.execute()
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 
372, in execute
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
rec.execute(self)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 
526, in execute
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     uow
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 
61, in save_obj
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     mapper, 
table, update)
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource   File 
"/opt/neutron/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 
537, in _emit_update_statements
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource     
(table.description, len(update), rows))
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource StaleDataError: 
UPDATE statement on table 'floatingips' expected to update 1 row(s); 0 were 
matched.
  2015-11-04 21:48:37.447 17275 TRACE neutron.api.v2.resource

  
  Version: stable/kilo

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to