TypeError when trying to delete an unnamed volume via dashboard

Bug #1031291 reported by Kurt Huwig on 2012-07-31
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Dashboard (Horizon)
High
Gabriel Hurley
Essex
Undecided
Unassigned
horizon (Ubuntu)
Undecided
Unassigned
Precise
Undecided
Unassigned

Bug Description

When you create an unnamed volume and try to delete it via the dashboard, you get a TypeError.

To reproduce:

1. create a volume with 'nova volume-create 1'
2. delete the volume with the dashboard

Deleting via the command line works fine.

Here are the errors:

TypeError at /nova/instances_and_volumes/
sequence item 0: expected string, NoneType found
Request Method: POST
Request URL: http://192.168.24.81/nova/instances_and_volumes/
Django Version: 1.3.1
Exception Type: TypeError
Exception Value:
sequence item 0: expected string, NoneType found
Exception Location: /usr/lib/python2.7/dist-packages/horizon/tables/actions.py in handle, line 475
Python Executable: /usr/bin/python
Python Version: 2.7.3
Python Path:
['/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../..',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/share/openstack-dashboard/',
 '/usr/share/openstack-dashboard/openstack_dashboard']
Server time: Tue, 31 Jul 2012 07:14:38 -0500

Environment:

Request Method: POST
Request URL: http://192.168.24.81/nova/instances_and_volumes/

Django Version: 1.3.1
Python Version: 2.7.3
Installed Applications:
['openstack_dashboard',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django_nose',
 'horizon',
 'horizon.dashboards.nova',
 'horizon.dashboards.syspanel',
 'horizon.dashboards.settings']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'openstack_dashboard.middleware.DashboardLogUnhandledExceptionsMiddleware',
 'horizon.middleware.HorizonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.locale.LocaleMiddleware')

Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/decorators.py" in dec
  40. return view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/decorators.py" in dec
  55. return view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/decorators.py" in dec
  40. return view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py" in view
  47. return self.dispatch(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py" in dispatch
  68. return handler(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in post
  113. return self.get(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in get
  105. handled = self.construct_tables()
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in construct_tables
  96. handled = self.handle_table(table)
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in handle_table
  71. handled = self._tables[name].maybe_handle()
File "/usr/lib/python2.7/dist-packages/horizon/tables/base.py" in maybe_handle
  980. return self.take_action(action_name, obj_id)
File "/usr/lib/python2.7/dist-packages/horizon/tables/base.py" in take_action
  917. response = action.multiple(self, self._meta.request, obj_ids)
File "/usr/lib/python2.7/dist-packages/horizon/tables/actions.py" in multiple
  203. return self.handle(data_table, request, object_ids)
File "/usr/lib/python2.7/dist-packages/horizon/tables/actions.py" in handle
  475. "objs": ", ".join(action_success)}

Exception Type: TypeError at /nova/instances_and_volumes/
Exception Value: sequence item 0: expected string, NoneType found

Related branches

CVE References

Gabriel Hurley (gabriel-hurley) wrote :

I believe this is fixed in master, but it would be good to verify it.

Changed in horizon:
assignee: nobody → Gabriel Hurley (gabriel-hurley)
importance: Undecided → High
milestone: none → folsom-3
status: New → Triaged
Gabriel Hurley (gabriel-hurley) wrote :

This is no longer a bug in master (this code has changed significantly)

Changed in horizon:
status: Triaged → Fix Committed
Thierry Carrez (ttx) on 2012-08-16
Changed in horizon:
status: Fix Committed → Fix Released

Reviewed: https://review.openstack.org/11859
Committed: http://github.com/openstack/horizon/commit/8889311a2f640e4562a5f6b54412380a69b8ee36
Submitter: Jenkins
Branch: stable/essex

commit 8889311a2f640e4562a5f6b54412380a69b8ee36
Author: Vincent Untz <email address hidden>
Date: Thu Aug 23 10:54:57 2012 +0200

    Do not crash when deleting image or volume with no name

    This was crashing because we were trying to use None as a string to
    display "Deleted: $name". Instead, we can use the id of the image in
    this case.

    Fixes bug 1031291.

    Change-Id: I2fca0bac9f963bba89e7c0da613ebc79ead15aba

tags: added: in-stable-essex
Thierry Carrez (ttx) on 2012-09-27
Changed in horizon:
milestone: folsom-3 → 2012.2
Changed in horizon (Ubuntu):
status: New → Fix Released
Changed in horizon (Ubuntu Precise):
status: New → Confirmed
Changed in openstack-dashboard (Ubuntu):
status: New → Invalid
no longer affects: openstack-dashboard (Ubuntu)
no longer affects: openstack-dashboard (Ubuntu Precise)
Steve Langasek (vorlon) wrote :

xception, but this bug is linked from the SRU changelog and would require direct verification. Please either complete the bug description with a test case for this bug, or re-upload without a reference in the changelog.

Hello Kurt, or anyone else affected,

Accepted horizon into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/horizon/2012.1.3+stable-20130423-5ce39422-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in horizon (Ubuntu Precise):
status: Confirmed → Fix Committed
tags: added: verification-needed

Please find the attached test log from the Ubuntu Server Team's CI infrastructure. As part of the verification process for this bug, Horizon has been deployed and configured across multiple nodes using precise-proposed as an installation source. After successful bring-up and configuration of the cluster, a number of exercises and smoke tests have be invoked to ensure the updated package did not introduce any regressions. A number of test iterations were carried out to catch any possible transient errors.

Please Note the list of installed packages at the top and bottom of the report.

For records of upstream test coverage of this update, please see the Jenkins links in the comments of the relevant upstream code-review(s):

Stable review: https://review.openstack.org/11859

As per the provisional Micro Release Exception granted to this package by the Technical Board, we hope this contributes toward verification of this update.

Yolanda Robla (yolanda.robla) wrote :

Test coverage log.

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package horizon - 2012.1.3+stable-20130423-5ce39422-0ubuntu1

---------------
horizon (2012.1.3+stable-20130423-5ce39422-0ubuntu1) precise-proposed; urgency=low

  * Resynchronize with stable/essex (LP: #1089488)
    - [7e651d7] stable/essex horizon installs unusable version of glance
      (LP: #1057125)
    - [35eada8] open redirect / phishing attack via "next" parameter
      (LP: #1039077)
    - [8889311] TypeError when trying to delete an unnamed volume via dashboard
      (LP: #1031291)
    - [f862d9e] Wrong 'Download CSV Summary' link (LP: #1020555)
    - [9b22d68] When adding ICMP rule, the type/code is being validated as
      from/to ports (LP: #997669)
    - [52bbba1] Added --only-selenium option in run_tests.sh
  * Dropped patches, superseeded by new snapshot:
    - debian/patches/CVE-2012-3540.patch [35eada8]
 -- Yolanda <email address hidden> Wed, 24 Apr 2013 15:46:28 +0200

Changed in horizon (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers