When trying to create a backup for instance within deployment that doesn't have Swift, Trove API doesn't handle correctly process of responding to user

Bug #1395107 reported by Denis M.
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack DBaaS (Trove)
Fix Released
Medium
Mayuri Ganguly

Bug Description

Using upstream code i was able to find such bug, which seems not even being handled. When trying to create a backup for instance within deployment that doesn't have Swift, Trove API doesn't handle correctly process of responding to Trove's user.

trove backup-create 8d03c1cc-23cd-47c1-b1f9-31662eaff82d 8d03c1cc-23cd-47c1-b1f9-31662eaff82d
ERROR: Internal Server Error. Please keep this ID to help us figure out what went wrong: (ff133403-66ce-42cf-b85e-c61e6e0f3340). (HTTP 500)

2014-11-21 18:29:39.880 ERROR trove.common.wsgi [req-90cd67f2-bc7f-4970-b132-970fab629187 1db3a5ac60f14958a0dbfd771694a049 cafcdd8aae5f4d888e27c6e6291a5e9c] ff133403-66ce-42cf-b85e-c61e6e0f3340: ('Connection aborted.', error(111, 'ECONNREFUSED'))
2014-11-21 18:29:39.880 TRACE trove.common.wsgi Traceback (most recent call last):
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/common/wsgi.py", line 251, in execute_action
2014-11-21 18:29:39.880 TRACE trove.common.wsgi **action_args)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/openstack/common/wsgi.py", line 395, in execute_action
2014-11-21 18:29:39.880 TRACE trove.common.wsgi return self.dispatch(self.controller, action, request, **action_args)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/openstack/common/wsgi.py", line 404, in dispatch
2014-11-21 18:29:39.880 TRACE trove.common.wsgi return method(*args, **kwargs)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/backup/service.py", line 64, in create
2014-11-21 18:29:39.880 TRACE trove.common.wsgi backup = Backup.create(context, instance, name, desc, parent_id=parent)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/backup/models.py", line 116, in create
2014-11-21 18:29:39.880 TRACE trove.common.wsgi _create_resources)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/quota/quota.py", line 349, in run_with_quotas
2014-11-21 18:29:39.880 TRACE trove.common.wsgi result = f()
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/backup/models.py", line 72, in _create_resources
2014-11-21 18:29:39.880 TRACE trove.common.wsgi cls.verify_swift_auth_token(context)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/trove/backup/models.py", line 251, in verify_swift_auth_token
2014-11-21 18:29:39.880 TRACE trove.common.wsgi client.get_account()
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 1293, in get_account
2014-11-21 18:29:39.880 TRACE trove.common.wsgi full_listing=full_listing)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 1243, in _retry
2014-11-21 18:29:39.880 TRACE trove.common.wsgi rv = func(self.url, self.token, *args, **kwargs)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 483, in get_account
2014-11-21 18:29:39.880 TRACE trove.common.wsgi conn.request(method, full_path, '', headers)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 217, in request
2014-11-21 18:29:39.880 TRACE trove.common.wsgi files=files, **self.requests_args)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 185, in _request
2014-11-21 18:29:39.880 TRACE trove.common.wsgi return self.request_session.request(*arg, **kwarg)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 457, in request
2014-11-21 18:29:39.880 TRACE trove.common.wsgi resp = self.send(prep, **send_kwargs)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 569, in send
2014-11-21 18:29:39.880 TRACE trove.common.wsgi r = adapter.send(request, **kwargs)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 407, in send
2014-11-21 18:29:39.880 TRACE trove.common.wsgi raise ConnectionError(err, request=request)
2014-11-21 18:29:39.880 TRACE trove.common.wsgi ConnectionError: ('Connection aborted.', error(111, 'ECONNREFUSED'))
2014-11-21 18:29:39.880 TRACE trove.common.wsgi
2014-11-21 18:29:39.936 INFO eventlet.wsgi [req-90cd67f2-bc7f-4970-b132-970fab629187 1db3a5ac60f14958a0dbfd771694a049 cafcdd8aae5f4d888e27c6e6291a5e9c] 172.16.43.250 - - [21/Nov/2014 18:29:39] "POST /v1.0/cafcdd8aae5f4d888e27c6e6291a5e9c/backups HTTP/1.1" 500 335 31.616391

Changed in trove:
status: Confirmed → Triaged
Changed in trove:
assignee: nobody → Mayuri Ganguly (mayuri-ganguly)
Changed in trove:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to trove (master)

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

Revision history for this message
Mayuri Ganguly (mayuri-ganguly) wrote :

I tried to reproduce the bug without swift bug got some different error, which is like this:
vagrant@trustystack:~/devstack/trove-integration/scripts$ trove backup-create bddbe1c4-f2d7-4392-9bcf-0d6c2d490860 mybackup3
ERROR: Endpoint not found for service_type=object-store, endpoint_type=publicURL, endpoint_region=RegionOne. (HTTP 400)
Did you follow some particular steps?

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to trove (master)

Reviewed: https://review.openstack.org/155613
Committed: https://git.openstack.org/cgit/openstack/trove/commit/?id=b64b7b5421e667ae6d499cf1276a1052a6924ad5
Submitter: Jenkins
Branch: master

commit b64b7b5421e667ae6d499cf1276a1052a6924ad5
Author: Mayuri Ganguly <email address hidden>
Date: Thu Feb 12 18:09:29 2015 -0800

    Provide more readable error message when swift is not installed

    When creating a backup with no swift, the error message is very
    general. Added an exception handler to provide a more meaningful
    error message.

    Closes-bug 1395107

    Change-Id: I7cdc9ddd29d094493ce652425addfa461138675f

Changed in trove:
status: In Progress → Fix Committed
Changed in trove:
milestone: none → kilo-3
Thierry Carrez (ttx)
Changed in trove:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in trove:
milestone: kilo-3 → 2015.1.0
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.