← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1603728] [NEW] search with error regex causes a 500 error

 

Public bug reported:

Description
===========
When I search instance with a wrong regx, such as '+', nova-api will return a 500 error.

Steps to reproduce
==================
nova list --name +

Expected result
===============
After the execution of the steps above, We can get a prompt of regx error message.


Actual result
=============
ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'oslo_db.exception.DBError'> (HTTP 500) (Request-ID: req-f6a78623-4db5-4f5b-94b1-8edb281b5e7a)

There are the nova-api.log:
 Traceback (most recent call last):
   File "/usr/lib/python2.7/site-packages/nova/api/openstack/extensions.py", line 478, in wrapped
     return f(*args, **kwargs)
   File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py", line 294, in detail
     servers = self._get_servers(req, is_detail=True)
   File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py", line 409, in _get_servers
     sort_keys=sort_keys, sort_dirs=sort_dirs)
   File "/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2128, in get_all
     sort_keys=sort_keys, sort_dirs=sort_dirs)
   File "/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2178, in _get_instances_by_filters
     expected_attrs=fields, sort_keys=sort_keys, sort_dirs=sort_dirs)
   File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 181, in wrapper
     result = fn(cls, context, *args, **kwargs)
   File "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 1065, in get_by_filters
     use_slave=use_slave, sort_keys=sort_keys, sort_dirs=sort_dirs)
   File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 285, in wrapper
     return f(*args, **kwargs)
   File "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 1049, in _get_by_filters_impl
     sort_keys=sort_keys, sort_dirs=sort_dirs)
   File "/usr/lib/python2.7/site-packages/nova/db/api.py", line 734, in instance_get_all_by_filters_sort
     sort_dirs=sort_dirs)
   File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 229, in wrapper
     return f(*args, **kwargs)
   File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 330, in wrapped
     return f(context, *args, **kwargs)
   File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 2308, in instance_get_all_by_filters_sort
     return _instances_fill_metadata(context, query_prefix.all(), manual_joins)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2588, in all
     return list(self)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2736, in __iter__
     return self._execute_and_instances(context)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2751, in _execute_and_instances
     result = conn.execute(querycontext.statement, self._params)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
     return meth(self, multiparams, params)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
     return connection._execute_clauseelement(self, multiparams, params)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
     compiled_sql, distilled_params
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
     context)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception
     util.raise_from_cause(newraise, exc_info)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 200, in raise_from_cause
     reraise(type(exception), exception, tb=exc_tb)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
     context)
   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
     cursor.execute(statement, parameters)
   File "/usr/lib/python2.7/site-packages/pymysql/cursors.py", line 146, in execute
     result = self._query(query)
   File "/usr/lib/python2.7/site-packages/pymysql/cursors.py", line 296, in _query
     conn.query(q)
   File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 781, in query
     self._affected_rows = self._read_query_result(unbuffered=unbuffered)
   File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 942, in _read_query_result
     result.read()
   File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 1138, in read
     first_packet = self.connection._read_packet()
   File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 906, in _read_packet
     packet.check_error()
   File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 367, in check_error
     err.raise_mysql_exception(self._data)
   File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 120, in raise_mysql_exception
     _check_mysql_exception(errinfo)
   File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 115, in _check_mysql_exception
     raise InternalError(errno, errorvalue)

DBError: (pymysql.err.InternalError) (1139, u"Got error 'nothing to
repeat at offset 0' from regexp")

Environment
===========
openstack-nova-api-13.1.0-1.el7.noarch
Libvirt + KVM

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1603728

Title:
  search with error regex causes a 500 error

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ===========
  When I search instance with a wrong regx, such as '+', nova-api will return a 500 error.

  Steps to reproduce
  ==================
  nova list --name +

  Expected result
  ===============
  After the execution of the steps above, We can get a prompt of regx error message.

  
  Actual result
  =============
  ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  <class 'oslo_db.exception.DBError'> (HTTP 500) (Request-ID: req-f6a78623-4db5-4f5b-94b1-8edb281b5e7a)

  There are the nova-api.log:
   Traceback (most recent call last):
     File "/usr/lib/python2.7/site-packages/nova/api/openstack/extensions.py", line 478, in wrapped
       return f(*args, **kwargs)
     File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py", line 294, in detail
       servers = self._get_servers(req, is_detail=True)
     File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py", line 409, in _get_servers
       sort_keys=sort_keys, sort_dirs=sort_dirs)
     File "/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2128, in get_all
       sort_keys=sort_keys, sort_dirs=sort_dirs)
     File "/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2178, in _get_instances_by_filters
       expected_attrs=fields, sort_keys=sort_keys, sort_dirs=sort_dirs)
     File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 181, in wrapper
       result = fn(cls, context, *args, **kwargs)
     File "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 1065, in get_by_filters
       use_slave=use_slave, sort_keys=sort_keys, sort_dirs=sort_dirs)
     File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 285, in wrapper
       return f(*args, **kwargs)
     File "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 1049, in _get_by_filters_impl
       sort_keys=sort_keys, sort_dirs=sort_dirs)
     File "/usr/lib/python2.7/site-packages/nova/db/api.py", line 734, in instance_get_all_by_filters_sort
       sort_dirs=sort_dirs)
     File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 229, in wrapper
       return f(*args, **kwargs)
     File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 330, in wrapped
       return f(context, *args, **kwargs)
     File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 2308, in instance_get_all_by_filters_sort
       return _instances_fill_metadata(context, query_prefix.all(), manual_joins)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2588, in all
       return list(self)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2736, in __iter__
       return self._execute_and_instances(context)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2751, in _execute_and_instances
       result = conn.execute(querycontext.statement, self._params)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
       return meth(self, multiparams, params)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
       return connection._execute_clauseelement(self, multiparams, params)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
       compiled_sql, distilled_params
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
       context)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception
       util.raise_from_cause(newraise, exc_info)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 200, in raise_from_cause
       reraise(type(exception), exception, tb=exc_tb)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
       context)
     File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
       cursor.execute(statement, parameters)
     File "/usr/lib/python2.7/site-packages/pymysql/cursors.py", line 146, in execute
       result = self._query(query)
     File "/usr/lib/python2.7/site-packages/pymysql/cursors.py", line 296, in _query
       conn.query(q)
     File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 781, in query
       self._affected_rows = self._read_query_result(unbuffered=unbuffered)
     File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 942, in _read_query_result
       result.read()
     File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 1138, in read
       first_packet = self.connection._read_packet()
     File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 906, in _read_packet
       packet.check_error()
     File "/usr/lib/python2.7/site-packages/pymysql/connections.py", line 367, in check_error
       err.raise_mysql_exception(self._data)
     File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 120, in raise_mysql_exception
       _check_mysql_exception(errinfo)
     File "/usr/lib/python2.7/site-packages/pymysql/err.py", line 115, in _check_mysql_exception
       raise InternalError(errno, errorvalue)

  DBError: (pymysql.err.InternalError) (1139, u"Got error 'nothing to
  repeat at offset 0' from regexp")

  Environment
  ===========
  openstack-nova-api-13.1.0-1.el7.noarch
  Libvirt + KVM

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


Follow ups