← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1276221] [NEW] Keystone returns HTTP 400 as SQLAlchemy raises None exceptions

 

Public bug reported:

With RDO-Icehouse (m2 testday packages) on RHEL-6.5,
negative Tempest identity tests fails as Keystone responds with HTTP 400.

For example test
tempest.api.identity.admin.v3.test_projects.ProjectsTestJSON.test_project_create_duplicate
gives following output:

> Request: POST http://192.168.1.16:35357/v3/projects
> Request Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<Token omitted>'}
> Request Body: {"project": {"enabled": true, "description": null, "name": "project-dup--1737299968", "domain_id": "default"}}
> Response Status: 400
> Response Headers: {'content-length': '143', 'date': 'Tue, 04 Feb 2014 07:47:53 GMT', 'content-type': 'application/json', 'vary': 'X-Auth-Token', 'connection': 'close'}
> Response Body: {"error": {"message": "exceptions must be old-style classes or derived from BaseException, not NoneType", "code": 400, "title": "Bad Request"}}

In keystone.log the exception can be seen as
> keystone.common.wsgi Traceback (most recent call last):
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/wsgi.py", line 214, in __call__
> keystone.common.wsgi     result = method(context, **params)
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/controller.py", line 174, in inner
> keystone.common.wsgi     return f(self, context, *args, **kwargs)
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/assignment/controllers.py", line 390, in create_project
> keystone.common.wsgi     ref = self.assignment_api.create_project(ref['id'], ref)
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/notifications.py", line 53, in wrapper
> keystone.common.wsgi     result = f(*args, **kwargs)
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/assignment/core.py", line 72, in create_project
> keystone.common.wsgi     ret = self.driver.create_project(tenant_id, tenant)
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/sql/core.py", line 165, in wrapper
> keystone.common.wsgi     return method(*args, **kwargs)
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/assignment/backends/sql.py", line 411, in create_project
> keystone.common.wsgi     return tenant_ref.to_dict()
> keystone.common.wsgi   File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
> keystone.common.wsgi     self.gen.next()
> keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/sql/core.py", line 156, in transaction
> keystone.common.wsgi     yield session
> keystone.common.wsgi   File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 405, in __exit__
> keystone.common.wsgi     raise
> keystone.common.wsgi TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
> keystone.common.wsgi 


Deployed with packstack, no related configuration changes.

Installed packages:
> openstack-keystone.noarch          2014.1-0.3.b2.el6
> python-keystone.noarch             2014.1-0.3.b2.el6
> python-keystoneclient.noarch       1:0.4.1-3.el6
> python-sqlalchemy0.7.x86_64        0.7.8-1.el6
> python-eventlet.noarch             0.9.17-2.el6
> python-libs.x86_64                 2.6.6-51.el6


This is NOT reproducible on Fedora20 with versions:
> openstack-keystone.noarch       2014.1-0.3.b2.fc21
> python-keystone.noarch          2014.1-0.3.b2.fc21
> python-keystoneclient.noarch    1:0.4.1-3.fc20
> python-sqlalchemy.x86_64        0.8.4-1.fc20
> python-eventlet.noarch          0.12.0-2.fc20
> python-libs.x86_64              2.7.5-9.fc20

Neither it happened on Fedora19/20 or RHEL-6.5 with devstack/tempest
master branches.

This seems as related to eventlet/tpool etc issues, here with SQLAlchemy.
For example like https://bitbucket.org/eventlet/eventlet/issue/118/exceptions-are-cleared-during

** Affects: keystone
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1276221

Title:
   Keystone returns HTTP 400 as SQLAlchemy raises None exceptions

Status in OpenStack Identity (Keystone):
  New

Bug description:
  With RDO-Icehouse (m2 testday packages) on RHEL-6.5,
  negative Tempest identity tests fails as Keystone responds with HTTP 400.

  For example test
  tempest.api.identity.admin.v3.test_projects.ProjectsTestJSON.test_project_create_duplicate
  gives following output:

  > Request: POST http://192.168.1.16:35357/v3/projects
  > Request Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<Token omitted>'}
  > Request Body: {"project": {"enabled": true, "description": null, "name": "project-dup--1737299968", "domain_id": "default"}}
  > Response Status: 400
  > Response Headers: {'content-length': '143', 'date': 'Tue, 04 Feb 2014 07:47:53 GMT', 'content-type': 'application/json', 'vary': 'X-Auth-Token', 'connection': 'close'}
  > Response Body: {"error": {"message": "exceptions must be old-style classes or derived from BaseException, not NoneType", "code": 400, "title": "Bad Request"}}

  In keystone.log the exception can be seen as
  > keystone.common.wsgi Traceback (most recent call last):
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/wsgi.py", line 214, in __call__
  > keystone.common.wsgi     result = method(context, **params)
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/controller.py", line 174, in inner
  > keystone.common.wsgi     return f(self, context, *args, **kwargs)
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/assignment/controllers.py", line 390, in create_project
  > keystone.common.wsgi     ref = self.assignment_api.create_project(ref['id'], ref)
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/notifications.py", line 53, in wrapper
  > keystone.common.wsgi     result = f(*args, **kwargs)
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/assignment/core.py", line 72, in create_project
  > keystone.common.wsgi     ret = self.driver.create_project(tenant_id, tenant)
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/sql/core.py", line 165, in wrapper
  > keystone.common.wsgi     return method(*args, **kwargs)
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/assignment/backends/sql.py", line 411, in create_project
  > keystone.common.wsgi     return tenant_ref.to_dict()
  > keystone.common.wsgi   File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
  > keystone.common.wsgi     self.gen.next()
  > keystone.common.wsgi   File "/usr/lib/python2.6/site-packages/keystone/common/sql/core.py", line 156, in transaction
  > keystone.common.wsgi     yield session
  > keystone.common.wsgi   File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 405, in __exit__
  > keystone.common.wsgi     raise
  > keystone.common.wsgi TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
  > keystone.common.wsgi 

  
  Deployed with packstack, no related configuration changes.

  Installed packages:
  > openstack-keystone.noarch          2014.1-0.3.b2.el6
  > python-keystone.noarch             2014.1-0.3.b2.el6
  > python-keystoneclient.noarch       1:0.4.1-3.el6
  > python-sqlalchemy0.7.x86_64        0.7.8-1.el6
  > python-eventlet.noarch             0.9.17-2.el6
  > python-libs.x86_64                 2.6.6-51.el6

  
  This is NOT reproducible on Fedora20 with versions:
  > openstack-keystone.noarch       2014.1-0.3.b2.fc21
  > python-keystone.noarch          2014.1-0.3.b2.fc21
  > python-keystoneclient.noarch    1:0.4.1-3.fc20
  > python-sqlalchemy.x86_64        0.8.4-1.fc20
  > python-eventlet.noarch          0.12.0-2.fc20
  > python-libs.x86_64              2.7.5-9.fc20

  Neither it happened on Fedora19/20 or RHEL-6.5 with devstack/tempest
  master branches.

  This seems as related to eventlet/tpool etc issues, here with SQLAlchemy.
  For example like https://bitbucket.org/eventlet/eventlet/issue/118/exceptions-are-cleared-during

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1276221/+subscriptions


Follow ups

References