yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #07221
[Bug 1257032] Re: nova makes calls to neutron with out considering URI size limit
*** This bug is a duplicate of bug 1228384 ***
https://bugs.launchpad.net/bugs/1228384
Will close this bug as a dup of
https://bugs.launchpad.net/nova/+bug/1228384 . As part of that fix, Phil
has implemented chunking of server ids when querying neutron for ports
of VMs. The above stack trace is for a quantum deployment, and Phil's
patch will be ported over to that deployment.
** This bug has been marked a duplicate of bug 1228384
Security Group extension reads all Neutron ports for anything other that a single server
--
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/1257032
Title:
nova makes calls to neutron with out considering URI size limit
Status in OpenStack Compute (Nova):
New
Bug description:
Nova when requesting security group instance bindings for servers
makes a call to Neutron. When there are many servers, the URI size
grows beyond 8k with neutron throwing up 414 error message.
We could easily hit this bug in our deployment as we have several VMs running.
There is a similar bug while making net-list. It needed to make subnet
list internally and that would result in 414 if there are several
subnets that can make URI size too long. But subnet-list was internal
call and fix was appropriate in the neutron client.
Here the bug is while fetching sg instance bindings which is primary
call. Hence I feel the bug must be fixed in neutron API consumer which
is nova.
Also, there must be a general framework for all APIs to not to exceed
URI size limit or fix all calls with URIs which can extend beyond 8k
size limit.
Stacktrace for reference
2013-11-27 13:06:01.696 ERROR nova.api.openstack [req-020f17cb-ee43-4cd2-a270-767936e6546b 6abe780581924062bdb648375abcb378 b9bbb06d41a942248e8d7070e17ed89d] Caught error: 414-{'message': ''}
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack Traceback (most recent call last):
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/api/openstack/__init__.py", line 81, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return req.get_response(self.application)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py", line 1053, in get_response
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack application, catch_exc_info=False)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py", line 1022, in call_application
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 159, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return resp(environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/keystoneclient/middleware/auth_token.py", line 450, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return self.app(env, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 159, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return resp(environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 159, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return resp(environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 159, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return resp(environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/Routes-1.12.3-py2.6.egg/routes/middleware.py", line 131, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack response = self.app(environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 159, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return resp(environ, start_response)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 147, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/dec.py", line 208, in call_func
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/api/openstack/wsgi.py", line 890, in __call__
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack content_type, body, accept)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/api/openstack/wsgi.py", line 969, in _process_stack
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack request, action_args)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/api/openstack/wsgi.py", line 863, in post_process_extensions
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack **action_args)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/api/openstack/compute/contrib/security_groups.py", line 547, in detail
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack self._extend_servers(req, list(resp_obj.obj['servers']))
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/api/openstack/compute/contrib/security_groups.py", line 497, in _extend_servers
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack servers))
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/nova/network/security_group/quantum_driver.py", line 258, in get_instances_security_groups_bindings
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack ports = quantum.list_ports(**search_opts).get('ports')
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 107, in with_params
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack ret = self.function(instance, *args, **kwargs)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 267, in list_ports
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack **_params)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 1018, in list
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack for r in self._pagination(collection, path, **params):
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 1031, in _pagination
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack res = self.get(path, params=params)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 1004, in get
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack headers=headers, params=params)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 989, in retry_request
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack headers=headers, params=params)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 934, in do_request
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack self._handle_fault_response(status_code, replybody)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 915, in _handle_fault_response
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack exception_handler_v20(status_code, des_error_body)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack File "/usr/lib/python2.6/site-packages/quantumclient/v2_0/client.py", line 92, in exception_handler_v20
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack message=msg)
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack QuantumClientException: 414-{'message': ''}
2013-11-27 13:06:01.696 30107 TRACE nova.api.openstack
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1257032/+subscriptions