← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1284718] [NEW] interface-attach to shared external network a) works and b) results in undeletable instances

 

*** This bug is a security vulnerability ***

Private security bug reported:

2013.2.1 release of OpenStack, Neutron OVS plugin.

Users where able to add interfaces using the 'nova interface-attach'
command to the external network definition within the OpenStack
deployment.  This appears to work and the ports are listed in nova port-
list <uuid>.  However when deleting these instances, nova-compute throws
the following error; its also not possible to delete the offending ports
from the user tenant; this has to be done from an admin tenant:

neutron port-delete <port>
nova delete <uuid>

2014-02-25 13:03:57.639 40614 ERROR nova.openstack.common.rpc.amqp [req-fb76503b-fad2-4ead-bae5-18c870c7a419 4dc76d7ddf8349b7bf63791a3cd4d024 79699f6f71e245b186720f1e2bc03cf0] Exception during message handling
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp Traceback (most recent call last):
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 461, in _process_data
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     **args)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/dispatcher.py", line 172, in dispatch
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     result = getattr(proxyobj, method)(ctxt, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 353, in decorated_function
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return function(self, context, *args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 90, in wrapped
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     payload)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 73, in wrapped
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return f(self, context, *args, **kw)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 243, in decorated_function
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     pass
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 229, in decorated_function
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return function(self, context, *args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 294, in decorated_function
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     function(self, context, *args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 271, in decorated_function
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     e, sys.exc_info())
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 258, in decorated_function
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return function(self, context, *args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1802, in terminate_instance
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     do_terminate_instance(instance, bdms)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/lockutils.py", line 246, in inner
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return f(*args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1794, in do_terminate_instance
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     reservations=reservations)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/hooks.py", line 105, in inner
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     rv = f(*args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1767, in _delete_instance
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     user_id=user_id)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1739, in _delete_instance
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     self._shutdown_instance(context, db_inst, bdms)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1649, in _shutdown_instance
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     network_info = self._get_instance_nw_info(context, instance)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 876, in _get_instance_nw_info
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     instance)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 49, in wrapper
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     res = f(self, context, *args, **kwargs)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 456, in get_instance_nw_info
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     result = self._get_instance_nw_info(context, instance, networks)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 465, in _get_instance_nw_info
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     nw_info = self._build_network_info_model(context, instance, networks)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 1011, in _build_network_info_model
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     subnets)
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 964, in _nw_info_build_network
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     label=network_name,
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp UnboundLocalError: local variable 'network_name' referenced before assignment
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp

** Affects: neutron
     Importance: Undecided
         Status: New

** Affects: nova
     Importance: Undecided
         Status: New

** Affects: neutron (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: nova (Ubuntu)
     Importance: Undecided
         Status: New

** Also affects: nova
   Importance: Undecided
       Status: New

** Information type changed from Public to Private Security

** Also affects: neutron (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: neutron
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1284718

Title:
  interface-attach to shared external network a) works and b) results in
  undeletable instances

Status in OpenStack Neutron (virtual network service):
  New
Status in OpenStack Compute (Nova):
  New
Status in “neutron” package in Ubuntu:
  New
Status in “nova” package in Ubuntu:
  New

Bug description:
  2013.2.1 release of OpenStack, Neutron OVS plugin.

  Users where able to add interfaces using the 'nova interface-attach'
  command to the external network definition within the OpenStack
  deployment.  This appears to work and the ports are listed in nova
  port-list <uuid>.  However when deleting these instances, nova-compute
  throws the following error; its also not possible to delete the
  offending ports from the user tenant; this has to be done from an
  admin tenant:

  neutron port-delete <port>
  nova delete <uuid>

  2014-02-25 13:03:57.639 40614 ERROR nova.openstack.common.rpc.amqp [req-fb76503b-fad2-4ead-bae5-18c870c7a419 4dc76d7ddf8349b7bf63791a3cd4d024 79699f6f71e245b186720f1e2bc03cf0] Exception during message handling
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp Traceback (most recent call last):
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 461, in _process_data
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     **args)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/dispatcher.py", line 172, in dispatch
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     result = getattr(proxyobj, method)(ctxt, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 353, in decorated_function
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return function(self, context, *args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 90, in wrapped
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     payload)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 73, in wrapped
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return f(self, context, *args, **kw)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 243, in decorated_function
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     pass
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 229, in decorated_function
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return function(self, context, *args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 294, in decorated_function
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     function(self, context, *args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 271, in decorated_function
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     e, sys.exc_info())
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 258, in decorated_function
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return function(self, context, *args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1802, in terminate_instance
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     do_terminate_instance(instance, bdms)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/lockutils.py", line 246, in inner
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     return f(*args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1794, in do_terminate_instance
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     reservations=reservations)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/hooks.py", line 105, in inner
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     rv = f(*args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1767, in _delete_instance
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     user_id=user_id)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1739, in _delete_instance
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     self._shutdown_instance(context, db_inst, bdms)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1649, in _shutdown_instance
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     network_info = self._get_instance_nw_info(context, instance)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 876, in _get_instance_nw_info
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     instance)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 49, in wrapper
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     res = f(self, context, *args, **kwargs)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 456, in get_instance_nw_info
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     result = self._get_instance_nw_info(context, instance, networks)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 465, in _get_instance_nw_info
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     nw_info = self._build_network_info_model(context, instance, networks)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 1011, in _build_network_info_model
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     subnets)
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/network/neutronv2/api.py", line 964, in _nw_info_build_network
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp     label=network_name,
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp UnboundLocalError: local variable 'network_name' referenced before assignment
  2014-02-25 13:03:57.639 40614 TRACE nova.openstack.common.rpc.amqp

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


Follow ups

References