← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1656716] [NEW] Internal Server Error with native pagination

 

Public bug reported:

Internal Server Error with native pagination, when a user specified
some unfortunate sort keys.

eg.
the following request is constructed to make pagination code see a marker with fixed_ip_address=None.

ubu7% neutron floatingip-list --sort-key fixed_ip_address --sort-dir desc|cat
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id                                   | fixed_ip_address | floating_ip_address | port_id                              |
+--------------------------------------+------------------+---------------------+--------------------------------------+
| 2b3b7d02-3404-4c53-a783-e4c5ed5b5aee |                  | 172.24.4.2          |                                      |
| 67f732a1-1b02-4c90-9eb2-7318c0e7e5b6 |                  | 172.24.4.4          |                                      |
| dcc24c05-5697-4273-9ce1-d17b5e9372a4 |                  | 172.24.4.7          |                                      |
| 29c951e5-5d64-4bbc-bdf9-9774e308d1c3 | 10.0.0.9         | 2000::9             | 3e78c8f5-eb7c-4a0d-a90e-7a804f4dd886 |
| d93b6472-6cf0-4233-9b27-bbb80e253214 | 10.0.0.9         | 172.24.4.8          | 3e78c8f5-eb7c-4a0d-a90e-7a804f4dd886 |
+--------------------------------------+------------------+---------------------+--------------------------------------+
ubu7% curl -g -i -X GET "http://192.168.137.129:9696/v2.0/floatingips.json?limit=1&sort_key=fixed_ip_address&sort_dir=desc&marker=2b3b7d02-3404-4c53-a783-e4c5ed5b5aee"; -H "User-Agent: python-neutronclient" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN"
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 150
X-Openstack-Request-Id: req-e889f8c3-2f10-4ae8-b177-9fab54e8f1a9
Date: Thu, 12 Jan 2017 20:01:39 GMT

{"NeutronError": {"message": "Request Failed: internal server error
while processing your request.", "type": "HTTPInternalServerError",
"detail": ""}}%


2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource Traceback (most recent call last):
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     result = method(request=request, **args)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 92, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     setattr(e, '_RETRY_EXCEEDED', True)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 128, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     traceback.format_exc())
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 123, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*dup_args, **dup_kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 369, in index
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self._items(request, True, parent_id)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 308, in _items
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     obj_list = obj_getter(request.context, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 163, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return method(*args, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 92, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     setattr(e, '_RETRY_EXCEEDED', True)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 128, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     traceback.format_exc())
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 123, in wrapped
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*dup_args, **dup_kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_db.py", line 1413, in get_floatingips
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     page_reverse=page_reverse)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/common_db_mixin.py", line 238, in _get_collection
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     page_reverse=page_reverse)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/common_db_mixin.py", line 228, in _get_collection_query
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     sort_dirs=sort_dirs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/utils.py", line 233, in paginate_query
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     crit_attrs.append((model_attr < marker_values[i]))
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/attributes.py", line 175, in operate
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return op(self.comparator, *other, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/properties.py", line 269, in operate
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return op(self.__clause_element__(), *other, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 742, in operate
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return op(self.comparator, *other, **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "<string>", line 1, in <lambda>
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/type_api.py", line 60, in operate
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return o[0](self.expr, op, *(other + o[1:]), **kwargs)
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/default_comparator.py", line 53, in _boolean_compare
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     "Only '=', '!=', 'is_()', 'isnot()' operators can "
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource ArgumentError: Only '=', '!=', 'is_()', 'isnot()' operators can be used with None/True/False
2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource

** Affects: neutron
     Importance: Undecided
         Status: New

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

Title:
  Internal Server Error with native pagination

Status in neutron:
  New

Bug description:
  Internal Server Error with native pagination, when a user specified
  some unfortunate sort keys.

  eg.
  the following request is constructed to make pagination code see a marker with fixed_ip_address=None.

  ubu7% neutron floatingip-list --sort-key fixed_ip_address --sort-dir desc|cat
  +--------------------------------------+------------------+---------------------+--------------------------------------+
  | id                                   | fixed_ip_address | floating_ip_address | port_id                              |
  +--------------------------------------+------------------+---------------------+--------------------------------------+
  | 2b3b7d02-3404-4c53-a783-e4c5ed5b5aee |                  | 172.24.4.2          |                                      |
  | 67f732a1-1b02-4c90-9eb2-7318c0e7e5b6 |                  | 172.24.4.4          |                                      |
  | dcc24c05-5697-4273-9ce1-d17b5e9372a4 |                  | 172.24.4.7          |                                      |
  | 29c951e5-5d64-4bbc-bdf9-9774e308d1c3 | 10.0.0.9         | 2000::9             | 3e78c8f5-eb7c-4a0d-a90e-7a804f4dd886 |
  | d93b6472-6cf0-4233-9b27-bbb80e253214 | 10.0.0.9         | 172.24.4.8          | 3e78c8f5-eb7c-4a0d-a90e-7a804f4dd886 |
  +--------------------------------------+------------------+---------------------+--------------------------------------+
  ubu7% curl -g -i -X GET "http://192.168.137.129:9696/v2.0/floatingips.json?limit=1&sort_key=fixed_ip_address&sort_dir=desc&marker=2b3b7d02-3404-4c53-a783-e4c5ed5b5aee"; -H "User-Agent: python-neutronclient" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN"
  HTTP/1.1 500 Internal Server Error
  Content-Type: application/json
  Content-Length: 150
  X-Openstack-Request-Id: req-e889f8c3-2f10-4ae8-b177-9fab54e8f1a9
  Date: Thu, 12 Jan 2017 20:01:39 GMT

  {"NeutronError": {"message": "Request Failed: internal server error
  while processing your request.", "type": "HTTPInternalServerError",
  "detail": ""}}%

  
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource Traceback (most recent call last):
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     result = method(request=request, **args)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 92, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     setattr(e, '_RETRY_EXCEEDED', True)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 128, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     traceback.format_exc())
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 123, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*dup_args, **dup_kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 369, in index
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self._items(request, True, parent_id)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 308, in _items
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     obj_list = obj_getter(request.context, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 163, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return method(*args, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 92, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     setattr(e, '_RETRY_EXCEEDED', True)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 128, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     traceback.format_exc())
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     self.force_reraise()
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/api.py", line 123, in wrapped
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return f(*dup_args, **dup_kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/l3_db.py", line 1413, in get_floatingips
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     page_reverse=page_reverse)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/common_db_mixin.py", line 238, in _get_collection
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     page_reverse=page_reverse)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/common_db_mixin.py", line 228, in _get_collection_query
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     sort_dirs=sort_dirs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/utils.py", line 233, in paginate_query
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     crit_attrs.append((model_attr < marker_values[i]))
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/attributes.py", line 175, in operate
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return op(self.comparator, *other, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/properties.py", line 269, in operate
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return op(self.__clause_element__(), *other, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 742, in operate
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return op(self.comparator, *other, **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line 282, in __lt__
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return self.operate(lt, other)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "<string>", line 1, in <lambda>
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/type_api.py", line 60, in operate
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     return o[0](self.expr, op, *(other + o[1:]), **kwargs)
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/default_comparator.py", line 53, in _boolean_compare
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource     "Only '=', '!=', 'is_()', 'isnot()' operators can "
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource ArgumentError: Only '=', '!=', 'is_()', 'isnot()' operators can be used with None/True/False
  2017-01-13 05:01:39.706 TRACE neutron.api.v2.resource

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