Activity log for bug #1775922

Date Who What changed Old value New value Message
2018-06-08 19:27:19 Mykola Yakovliev bug added bug
2018-06-08 19:27:45 Mykola Yakovliev description If we have pagination enabled in neutron.conf: allow_pagination = True pagination_max_limit = 20 And create too many subnets: for i in `seq 1 200`; do neutron net-create test-net-$i ;done for i in `seq 1 200`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand return run_command(cmd, cmd_parser, sub_argv) File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command return cmd.run(known_args) File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run return super(OpenStackCommand, self).run(parsed_args) File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run column_names, data = self.take_action(parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action return self.get_data(parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data self.extend_list(data, parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list _get_subnet_list(subnet_ids[i: i + chunk_size])) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list **search_opts).get('subnets', []) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params ret = self.function(instance, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets **_params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list for r in self._pagination(collection, path, **params): File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination res = self.get(path, params=params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get headers=headers, params=params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request headers=headers, params=params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request content_type=self.content_type()) File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request self._check_uri_length(url) File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because pagination does not take in a count "&marker=uuid". If we have pagination enabled in neutron.conf: allow_pagination = True pagination_max_limit = 20 And create too many subnets: for i in `seq 1 200`; do neutron net-create test-net-$i ;done for i in `seq 1 200`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid".
2018-06-08 19:41:33 OpenStack Infra python-neutronclient: status New In Progress
2018-06-08 19:41:33 OpenStack Infra python-neutronclient: assignee Mykola Yakovliev (vegasq)
2018-06-11 19:06:09 Mykola Yakovliev description If we have pagination enabled in neutron.conf: allow_pagination = True pagination_max_limit = 20 And create too many subnets: for i in `seq 1 200`; do neutron net-create test-net-$i ;done for i in `seq 1 200`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid". If we have pagination enabled in neutron.conf: # allow_pagination = True pagination_max_limit = 20 And create too many subnets: for i in `seq 1 300`; do neutron net-create test-net-$i ;done for i in `seq 1 300`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid".
2018-06-11 19:47:13 Mykola Yakovliev description If we have pagination enabled in neutron.conf: # allow_pagination = True pagination_max_limit = 20 And create too many subnets: for i in `seq 1 300`; do neutron net-create test-net-$i ;done for i in `seq 1 300`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid". To reproduce the bug you need to have a lot of subnets: 8192 (max uri length) / 40 (length of single subnet filter) = 204 subnets In this situation, the client will try to paginate request but fails because it does not count for a marker. for i in `seq 1 255`; do neutron net-create test-net-$i ;done for i in `seq 1 255`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid".
2018-06-11 19:49:02 Mykola Yakovliev description To reproduce the bug you need to have a lot of subnets: 8192 (max uri length) / 40 (length of single subnet filter) = 204 subnets In this situation, the client will try to paginate request but fails because it does not count for a marker. for i in `seq 1 255`; do neutron net-create test-net-$i ;done for i in `seq 1 255`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid". To reproduce the bug you need to have a lot of subnets: 8192 (max uri length) / 40 (length of single subnet filter) = 204 subnets In this situation, the client will try to paginate request but fails because it does not count for a marker. for i in `seq 1 254`; do neutron net-create test-net-$i ;done for i in `seq 1 254`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid".
2018-06-11 19:50:29 Mykola Yakovliev description To reproduce the bug you need to have a lot of subnets: 8192 (max uri length) / 40 (length of single subnet filter) = 204 subnets In this situation, the client will try to paginate request but fails because it does not count for a marker. for i in `seq 1 254`; do neutron net-create test-net-$i ;done for i in `seq 1 254`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid". To reproduce the bug you need to have a lot of subnets: 8192 (max uri length) / 40 (length of single subnet filter) = 204 subnets In this situation when the count of subnets is over this value, the client will try to paginate request but fails because it does not count for a marker. for i in `seq 1 254`; do neutron net-create test-net-$i ;done for i in `seq 1 254`; do neutron subnet-create --name test-subnet-$i test-net-$i 172.25.$i.0/24;done During "neutron net-list" call you will get an exception: ERROR: neutronclient.shell An unknown exception occurred. Traceback (most recent call last):   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 787, in run_subcommand     return run_command(cmd, cmd_parser, sub_argv)   File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 104, in run_command     return cmd.run(known_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run     return super(OpenStackCommand, self).run(parsed_args)   File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run     column_names, data = self.take_action(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action     return self.get_data(parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 694, in get_data     self.extend_list(data, parsed_args)   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 87, in extend_list     _get_subnet_list(subnet_ids[i: i + chunk_size]))   File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/network.py", line 61, in _get_subnet_list     **search_opts).get('subnets', [])   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 96, in with_params     ret = self.function(instance, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 589, in list_subnets     **_params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list     for r in self._pagination(collection, path, **params):   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 314, in _pagination     res = self.get(path, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 287, in get     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 264, in retry_request     headers=headers, params=params)   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 194, in do_request     content_type=self.content_type())   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 305, in do_request     self._check_uri_length(url)   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 301, in _check_uri_length     excess=uri_len - MAX_URI_LEN) RequestURITooLong: An unknown exception occurred. The problem happens because subnet pagination does not take in a count "&marker=uuid".
2018-06-12 04:39:06 Dr. Jens Harbott bug added subscriber Dr. Jens Harbott
2018-09-02 04:06:23 OpenStack Infra python-neutronclient: status In Progress Fix Released