yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #17988
[Bug 1348097] [NEW] Metadata agent fails with RequestURITooLong
Public bug reported:
The issue is reproducible when project (tenant) contains more than 170
networks and all these networks plugged into a single router.
Steps to reproduce on devstack:
* disable quotas
* create networks and subnets inside tenant, plug them into the router:
for i in $(seq 1 170);
do
neutron net-create "skynet_$i"
neutron subnet-create --name "skysubnet_$i" "skynet_$i" "13.0.$i.0/24"
neutron router-interface-add router1 "skysubnet_$i"
done
* launch VM and plug into any network
* from VM's VNC console do curl http://169.254.169.254/latest/meta-data/instance-id
Observed behavior:
* the request fails with HTTP 500 error
* stacktrace in logs of neutron metadata agent (q-meta screen):
RequestURITooLong: An unknown exception occurred.
Stacktrace:
2014-07-24 08:54:58.465 ERROR neutron.agent.metadata.agent [-] Unexpected error.
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent Traceback (most recent call last):
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 128, in __call__
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent instance_id, tenant_id = self._get_instance_and_tenant_id(req)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 192, in _get_instance_and_tenant_id
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent ports = self._get_ports(remote_address, network_id, router_id)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 183, in _get_ports
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent return self._get_ports_for_remote_address(remote_address, networks)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/common/utils.py", line 99, in __call__
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent return self._get_from_cache(target_self, *args, **kwargs)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/common/utils.py", line 77, in _get_from_cache
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent item = self.func(target_self, *args, **kwargs)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 163, in _get_ports_for_remote_address
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent return qclient.list_ports(
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 101, in with_params
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent ret = self.function(instance, *args, **kwargs)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 308, in list_ports
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent **_params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1329, in list
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent for r in self._pagination(collection, path, **params):
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1342, in _pagination
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent res = self.get(path, params=params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1315, in get
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent headers=headers, params=params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1300, in retry_request
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent headers=headers, params=params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1228, in do_request
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent self._check_uri_length(action)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1217, in _check_uri_length
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent excess=uri_len - self.MAX_URI_LEN)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent RequestURITooLong: An unknown exception occurred.
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent
** Affects: neutron
Importance: Undecided
Assignee: Ilya Shakhat (shakhat)
Status: New
** Changed in: neutron
Assignee: (unassigned) => Ilya Shakhat (shakhat)
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1348097
Title:
Metadata agent fails with RequestURITooLong
Status in OpenStack Neutron (virtual network service):
New
Bug description:
The issue is reproducible when project (tenant) contains more than 170
networks and all these networks plugged into a single router.
Steps to reproduce on devstack:
* disable quotas
* create networks and subnets inside tenant, plug them into the router:
for i in $(seq 1 170);
do
neutron net-create "skynet_$i"
neutron subnet-create --name "skysubnet_$i" "skynet_$i" "13.0.$i.0/24"
neutron router-interface-add router1 "skysubnet_$i"
done
* launch VM and plug into any network
* from VM's VNC console do curl http://169.254.169.254/latest/meta-data/instance-id
Observed behavior:
* the request fails with HTTP 500 error
* stacktrace in logs of neutron metadata agent (q-meta screen):
RequestURITooLong: An unknown exception occurred.
Stacktrace:
2014-07-24 08:54:58.465 ERROR neutron.agent.metadata.agent [-] Unexpected error.
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent Traceback (most recent call last):
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 128, in __call__
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent instance_id, tenant_id = self._get_instance_and_tenant_id(req)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 192, in _get_instance_and_tenant_id
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent ports = self._get_ports(remote_address, network_id, router_id)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 183, in _get_ports
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent return self._get_ports_for_remote_address(remote_address, networks)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/common/utils.py", line 99, in __call__
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent return self._get_from_cache(target_self, *args, **kwargs)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/common/utils.py", line 77, in _get_from_cache
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent item = self.func(target_self, *args, **kwargs)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/neutron/neutron/agent/metadata/agent.py", line 163, in _get_ports_for_remote_address
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent return qclient.list_ports(
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 101, in with_params
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent ret = self.function(instance, *args, **kwargs)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 308, in list_ports
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent **_params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1329, in list
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent for r in self._pagination(collection, path, **params):
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1342, in _pagination
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent res = self.get(path, params=params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1315, in get
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent headers=headers, params=params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1300, in retry_request
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent headers=headers, params=params)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1228, in do_request
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent self._check_uri_length(action)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1217, in _check_uri_length
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent excess=uri_len - self.MAX_URI_LEN)
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent RequestURITooLong: An unknown exception occurred.
2014-07-24 08:54:58.465 TRACE neutron.agent.metadata.agent
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1348097/+subscriptions
Follow ups
References