Cannot boot Nova as quantum throws 404 when Floating IP extension unavailable

Bug #1163670 reported by Neela Shah
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Aaron Rosen
Grizzly
Fix Released
High
Aaron Rosen

Bug Description

Running with grizzly-stable.

Unable to boot nova when the quantum plug in does not support the Floating IP Extension.

The issue is with the 'self._get_floating_ips_by_fixed_and_port'. If the extension in quantum that supports that is not available, then this whole method throws an error (the 404 error thrown by Quantum).

The exception looks like the following.
************************************************************
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1317, in _delete_instance
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp project_id=project_id)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1290, in _delete_instance
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp self._shutdown_instance(context, instance, bdms)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1215, in _shutdown_instance
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp network_info = self._get_instance_nw_info(context, instance)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 668, in _get_instance_nw_info
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp instance, conductor_api=self.conductor_api)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/network/quantumv2/api.py", line 361, in get_instance_nw_info
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp result = self._get_instance_nw_info(context, instance, networks)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/network/quantumv2/api.py", line 369, in _get_instance_nw_info
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp nw_info = self._build_network_info_model(context, instance, networks)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/network/quantumv2/ibmpowervm_api.py", line 27, in _build_network_info_model
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp networks)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/network/quantumv2/api.py", line 810, in _build_network_info_model
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp client, fixed_ip['ip_address'], port['id'])
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/nova/network/quantumv2/api.py", line 725, in _get_floating_ips_by_fixed_and_port
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp data = client.list_floatingips(fixed_ip_address=fixed_ip, port_id=port)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 107, in with_params
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp ret = self.function(instance, *args, **kwargs)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 434, in list_floatingips
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp **_params)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 996, in list
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp for r in self._pagination(collection, path, **params):
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 1009, in _pagination
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp res = self.get(path, params=params)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 982, in get
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp headers=headers, params=params)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 967, in retry_request
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp headers=headers, params=params)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 912, in do_request
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp self._handle_fault_response(status_code, replybody)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 893, in _handle_fault_response
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp exception_handler_v20(status_code, des_error_body)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 87, in exception_handler_v20
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp message=message)
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp QuantumClientException: 404 Not Found
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp The resource could not be found.
2013-03-30 11:39:52.112 16073 TRACE nova.openstack.common.rpc.amqp
************************************************************

Aaron Rosen (arosen)
Changed in nova:
assignee: nobody → Aaron Rosen (arosen)
status: New → Confirmed
Changed in nova:
importance: Undecided → High
status: Confirmed → Triaged
tags: added: folsom-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/26153

Changed in nova:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/26153
Committed: http://github.com/openstack/nova/commit/c62f698ef1f1e69bd5eb3c6544ee305f96488d42
Submitter: Jenkins
Branch: master

commit c62f698ef1f1e69bd5eb3c6544ee305f96488d42
Author: Aaron Rosen <email address hidden>
Date: Thu Apr 4 13:51:47 2013 -0700

    Cannot boot vm if quantum plugin does not support L3 api

    Fixes bug 1163670

    Change-Id: I87f0b73e5040b5f9cf7d8c30aa16a2a33faca14f

Changed in nova:
status: In Progress → Fix Committed
Revision history for this message
Neela Shah (neela) wrote :

This fix needs to be in grizzly as well - it is still a problem there. Will this be backported to grizzly?

tags: added: grizzly-backport-potential
removed: folsom-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/grizzly)

Fix proposed to branch: stable/grizzly
Review: https://review.openstack.org/26608

tags: removed: grizzly-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: stable/grizzly
Review: https://review.openstack.org/27308

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/grizzly)

Reviewed: https://review.openstack.org/27308
Committed: http://github.com/openstack/nova/commit/71e39dc2616ba25eb24bfc094489c36b2b3d4e80
Submitter: Jenkins
Branch: stable/grizzly

commit 71e39dc2616ba25eb24bfc094489c36b2b3d4e80
Author: Aaron Rosen <email address hidden>
Date: Thu Apr 4 13:51:47 2013 -0700

    Cannot boot vm if quantum plugin does not support L3 api

    from quantumclient.common import exceptions as qexceptions was also
    added to nova/network/quantumv2/api.py

    Fixes bug 1163670

    Change-Id: I8afcf2753c9cec9a0dc13f866301bd1e7b3fdde2

Thierry Carrez (ttx)
Changed in nova:
milestone: none → havana-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: havana-1 → 2013.2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to nova (master)

Reviewed: https://review.openstack.org/226274
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e5c9b7ecc62e1b9400d20540c7d5c10982506d3a
Submitter: Jenkins
Branch: master

commit e5c9b7ecc62e1b9400d20540c7d5c10982506d3a
Author: Alexey I. Froloff <email address hidden>
Date: Tue Sep 22 14:39:40 2015 +0300

    Fix more inconsistency between Nova-Net and Neutron

    The commit c62f698ef1f1e69bd5eb3c6544ee305f96488d42 fixed one
    incosistency between Nova-Net and Neutron, when Neutron returns 404
    error for list_floatingip and Nova translates it into 500 computeFault.
    However, there are two other places where list_floatingips is called.

    Move common code into private helper function, where 404 Error from
    Neutron is gracefully handled, and use it where appropriate.

    Closes-Bug: #1498443
    Related-Bug: #1163670

    Change-Id: I9229d882712df1ad57afbda7477fa4d72f4fd83c

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.