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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

