413 error code doesn't always provide Retry-After
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Sean Dague | ||
Folsom |
Fix Released
|
Medium
|
Sean Dague | ||
nova (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Quantal |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
In nova we use the 413 error code (Request Entity Too Large) for quota errors, not just the originally intended "server out or resources right now". As such, we don't always have a Retry-After set.
The code currently assumes that on any 413 we have set a Retry-After, and then dies in an exception because that key isn't found (an example being):
2012-11-15 13:48:18 DEBUG nova.quota [req-c9829c33-
2012-11-15 13:48:18 WARNING nova.compute.api [req-c9829c33-
2012-11-15 13:48:18 INFO nova.api.
2012-11-15 13:48:18 INFO nova.api.
2012-11-15 13:48:18 ERROR nova.api.openstack [req-c9829c33-
2012-11-15 13:48:18 24798 TRACE nova.api.openstack Traceback (most recent call last):
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/opt/stack/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return req.get_
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack application, catch_exc_
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack app_iter = application(
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return resp(environ, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/opt/stack/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return self.app(env, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return resp(environ, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return resp(environ, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/lib/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack response = self.app(environ, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return resp(environ, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return resp(environ, start_response)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/opt/stack/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack retry = self.wrapped_
2012-11-15 13:48:18 24798 TRACE nova.api.openstack File "/usr/local/
2012-11-15 13:48:18 24798 TRACE nova.api.openstack raise KeyError(key)
2012-11-15 13:48:18 24798 TRACE nova.api.openstack KeyError: 'retry-after'
2012-11-15 13:48:18 24798 TRACE nova.api.openstack
Related branches
- Openstack Ubuntu Testers: Pending requested
-
Diff: 121 lines (+100/-4)1 file modifieddebian/changelog (+100/-4)
CVE References
Changed in nova: | |
importance: | Undecided → Medium |
assignee: | nobody → Sean Dague (sdague-b) |
status: | New → Triaged |
tags: | added: folsom-backport-potential |
Changed in nova: | |
milestone: | none → grizzly-1 |
status: | Fix Committed → Fix Released |
tags: | removed: folsom-backport-potential |
Changed in nova (Ubuntu): | |
status: | New → Fix Released |
Changed in nova (Ubuntu Quantal): | |
status: | New → Confirmed |
Changed in nova: | |
milestone: | grizzly-1 → 2013.1 |
Fix proposed to branch: master /review. openstack. org/16273
Review: https:/