os-getConsoleOutput fail with 500

Bug #1536513 reported by Eli Qiao on 2016-01-21
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
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

Eli Qiao (taget-9) on 2016-01-21
Changed in nova:
assignee: nobody → Eli Qiao (taget-9)
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) on 2016-02-29
tags: added: api
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) on 2016-03-08
tags: added: mitaka-rc-potential
Changed in nova:
assignee: Eli Qiao (taget-9) → Sean Dague (sdague)

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

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

Matt Riedemann (mriedem) on 2016-03-21
tags: added: console
removed: mitaka-rc-potential
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers