error 500 creating share group with wrong group specs value type

Bug #1673446 reported by Valeriy Ponomaryov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
Low
Valeriy Ponomaryov

Bug Description

If we try to create share group type with wrong value for "group_specs", for example - sting instead of dict, then we get error code 500:

2017-03-16 15:34:42.58 INFO manila.api.openstack.wsgi [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] POST http://172.18.198.54:8786/v2/96c537dad4b245aa8e655d45b2602611/share-group-types
2017-03-16 15:34:42.58 DEBUG manila.api.openstack.wsgi [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] Action: 'create', calling method: <function _create at 0x7f86bdb3eb18>, body: {"share_group_type":
 {"group_specs": "fake", "share_types": ["d9d897f3-bd80-443c-bfe3-7f2ef42e6649"], "name": "test_sg"}} from (pid=5782) _process_stack /opt/stack/manila/manila/api/openstack/wsgi.py:785
2017-03-16 15:34:42.65 ERROR manila.share_group.share_group_types [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] DB error
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types Traceback (most recent call last):
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/share_group/share_group_types.py", line 39, in create
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types projects=projects)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/db/api.py", line 1184, in share_group_type_create
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types return IMPL.share_group_type_create(context, values, projects)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/db/sqlalchemy/api.py", line 146, in wrapper
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types return f(*args, **kwargs)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/db/sqlalchemy/api.py", line 4242, in share_group_type_create
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types raise db_exception.DBError(e)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types DBError: 'unicode' object has no attribute 'items'
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types
2017-03-16 15:34:42.68 ERROR manila.api.middleware.fault [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] Caught error: Cannot create share group type with name test_sg and specs fake.
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault Traceback (most recent call last):
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/middleware/fault.py", line 72, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return req.get_response(self.application)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in send
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault application, catch_exc_info=False)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in call_application
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault app_iter = application(self.environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return self.func(req, *args, **kwargs)

2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line 126, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault response = req.get_response(self.application)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in send
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault application, catch_exc_info=False)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in call_application
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault app_iter = application(self.environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return self.func(req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py", line 335, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault response = req.get_response(self._app)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in send
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault application, catch_exc_info=False)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in call_application
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault app_iter = application(self.environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 141, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault response = self.app(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return self.func(req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 761, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault content_type, body, accept)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 819, in _process_stack
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault action_result = self.dispatch(meth, request, action_args)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 909, in dispatch
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return method(req=request, **action_args)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 1051, in version_select
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return func.func(self, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 1145, in wrapper
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return f(self, req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/v2/share_group_types.py", line 136, in _create
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault context, name, share_types, specs, is_public)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/share_group/share_group_types.py", line 43, in create
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault name=name, group_specs=group_specs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault ShareGroupTypeCreateFailed: Cannot create share group type with name test_sg and specs fake.
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault
2017-03-16 15:34:42.291 INFO manila.api.middleware.fault [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] http://172.18.198.54:8786/v2/96c537dad4b245aa8e655d45b2602611/share-group-types returned with HTTP 500

Tags: api
Changed in manila:
milestone: none → pike-1
importance: Undecided → Low
tags: added: api
Changed in manila:
assignee: nobody → Valeriy Ponomaryov (vponomaryov)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (master)

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

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

Reviewed: https://review.openstack.org/446583
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=0fff8b8c3f92a166fc6e1831d01306d3579d164d
Submitter: Jenkins
Branch: master

commit 0fff8b8c3f92a166fc6e1831d01306d3579d164d
Author: Valeriy Ponomaryov <email address hidden>
Date: Thu Mar 16 17:25:47 2017 +0300

    [Share Groups] Fix creation of share group types with wrong specs values

    If we provide some other type than None or dict as group specs
    creating share group type, then we get error 500 caused by unhandled
    exception. So, avoid it by explicitly checking type of provided group
    specs.

    Change-Id: I81312617f37a8f559b3c9201b03cf8be31761365
    Closes-Bug: #1673446

Changed in manila:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/manila 5.0.0.0b2

This issue was fixed in the openstack/manila 5.0.0.0b2 development milestone.

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.