os-getConsoleOutput fail with 500

Bug #1536513 reported by Eli Qiao
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Sean Dague

Bug Description

2016-01-21 07:12:24.667 DEBUG nova.api.openstack.wsgi [req-62cccfc1-478e-415b-8f12-51637bfd78e7 tempest-ServerActionsTestJSON-1139043036 tempest-ServerActionsTestJSON-2088121350] Action: 'action', calling method: <bound method ConsoleOutputController.get_console_output of <nova.api.openstack.compute.console_output.ConsoleOutputController object at 0x7f313d6cc410>>, body: {"os-getConsoleOutput": {}} _process_stack /opt/stack/new/nova/nova/api/openstack/wsgi.py:806
2016-01-21 07:12:24.668 DEBUG nova.compute.api [req-62cccfc1-478e-415b-8f12-51637bfd78e7 tempest-ServerActionsTestJSON-1139043036 tempest-ServerActionsTestJSON-2088121350] [instance: c2294c61-b6cf-4ffa-8e87-d382e0205235] Fetching instance by UUID get /opt/stack/new/nova/nova/compute/api.py:1945
2016-01-21 07:12:24.853 ERROR nova.api.openstack.extensions [req-62cccfc1-478e-415b-8f12-51637bfd78e7 tempest-ServerActionsTestJSON-1139043036 tempest-ServerActionsTestJSON-2088121350] Unexpected exception in API method
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions Traceback (most recent call last):
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/api/openstack/extensions.py", line 478, in wrapped
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return f(*args, **kwargs)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/api/validation/__init__.py", line 73, in wrapper
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return func(*args, **kwargs)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/api/openstack/compute/console_output.py", line 54, in get_console_output
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions length)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/api.py", line 171, in wrapped
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return func(self, context, target, *args, **kwargs)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/api.py", line 151, in wrapped
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return function(self, context, instance, *args, **kwargs)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/api.py", line 2917, in get_console_output
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions instance=instance, tail_length=tail_length)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/rpcapi.py", line 498, in get_console_output
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions instance=instance, tail_length=tail_length)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/client.py", line 158, in call
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions retry=self.retry)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/transport.py", line 90, in _send
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions timeout=timeout, retry=retry)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 464, in send
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions retry=retry)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 455, in _send
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions raise result
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions NovaException_Remote: Guest does not have a console available
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions Traceback (most recent call last):
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 143, in _dispatch_and_reply
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions executor_callback))
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 189, in _dispatch
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions executor_callback)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions result = func(ctxt, **new_args)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 150, in inner
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return func(*args, **kwargs)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/exception.py", line 110, in wrapped
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions payload)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions six.reraise(self.type_, self.value, self.tb)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/exception.py", line 89, in wrapped
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return f(self, context, *args, **kw)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/manager.py", line 385, in decorated_function
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions kwargs['instance'], e, sys.exc_info())
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions six.reraise(self.type_, self.value, self.tb)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/manager.py", line 373, in decorated_function
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return function(self, context, *args, **kwargs)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/compute/manager.py", line 4415, in get_console_output
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions output = self.driver.get_console_output(context, instance)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/virt/xenapi/driver.py", line 373, in get_console_output
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions return self._vmops.get_console_output(instance)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions File "/opt/stack/new/nova/nova/virt/xenapi/vmops.py", line 1773, in get_console_output
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions raise exception.NovaException(msg)
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions NovaException: Guest does not have a console available
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.853 12292 ERROR nova.api.openstack.extensions
2016-01-21 07:12:24.854 INFO nova.api.openstack.wsgi [req-62cccfc1-478e-415b-8f12-51637bfd78e7 tempest-ServerActionsTestJSON-1139043036 tempest-ServerActionsTestJSON-2088121350] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'NovaException_Remote'>
2016-01-21 07:12:24.855 DEBUG nova.api.openstack.wsgi [req-62cccfc1-478e-415b-8f12-51637bfd78e7 tempest-ServerActionsTestJSON-1139043036 tempest-ServerActionsTestJSON-2088121350] Returning 500 to user: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'NovaException_Remote'> __call__ /opt/stack/new/nova/nova/api/openstack/wsgi.py:1191

Tags: api console
Eli Qiao (taget-9)
Changed in nova:
assignee: nobody → Eli Qiao (taget-9)
Revision history for this message
Eli Qiao (taget-9) wrote :

we need to define a new exception to wrapper it instead of raise 500. should be 400.

Changed in nova:
status: New → Confirmed
importance: Undecided → Medium
Eli Qiao (taget-9)
tags: added: api
Revision history for this message
Sean Dague (sdague) wrote :

I think that for this case of "Guest does not have a console available" we should have a well defined

exception.NoConsoleAvailable

That gets sent back over the wire to the API, and gets translated to a 404.

Changed in nova:
status: Confirmed → In Progress
Eli Qiao (taget-9)
tags: added: mitaka-rc-potential
Revision history for this message
Markus Zoeller (markus_z) (mzoeller) wrote :
Changed in nova:
assignee: Eli Qiao (taget-9) → Sean Dague (sdague)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

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

commit ddce3d0376d71f561ac77c23b327d7fece214cc6
Author: Eli Qiao <email address hidden>
Date: Thu Jan 21 17:51:50 2016 +0800

    API: Raise up HTTPNotFound when no availabe while get_console_output

    When we try to call get_console_output(), we may face console is not
    available error, raise it up and let API raise HTTPNotFound error.

    Closes-Bug: #1536513
    Change-Id: I718d2168f353fb127a6d217b50fa595a66a1084a

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/nova 13.0.0.0rc1

This issue was fixed in the openstack/nova 13.0.0.0rc1 release candidate.

Matt Riedemann (mriedem)
tags: added: console
removed: mitaka-rc-potential
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.