UUID case sensitivity causing unfriendly and unexpected API errors
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Matt Riedemann | ||
Ocata |
Fix Committed
|
Medium
|
Matt Riedemann | ||
Pike |
Fix Committed
|
Medium
|
Matt Riedemann |
Bug Description
I was seeing a user pass an uppercase UUID from their app to the Nova API's. Their calls failed with a 500 error and the following exception in the nova-api log:
017-05-24 11:20:27.176 68631 ERROR nova.api.openstack [req-674b4fd1-
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack Traceback (most recent call last):
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return req.get_
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack application, catch_exc_
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack app_iter = application(
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return resp(environ, start_response)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return self.func(req, *args, **kwargs)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack response = req.get_
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack application, catch_exc_
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack app_iter = application(
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return resp(environ, start_response)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return resp(environ, start_response)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack response = self.app(environ, start_response)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return resp(environ, start_response)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack return self.func(req, *args, **kwargs)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack content_type, body, accept)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack request, action_args)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack **action_args)
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack self._perhaps_
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack File "/usr/lib/
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack if instance.
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack AttributeError: 'NoneType' object has no attribute 'get'
2017-05-24 11:20:27.176 68631 ERROR nova.api.openstack
2017-05-24 11:20:27.177 68631 INFO nova.api.openstack [req-674b4fd1-
Having the user pass lowercase UUID's in their app fixes the client issue, but it would be nice if the API's would sanitize UUID's or at least kick out a more friendly error.
description: | updated |
I forgot to mention I'm seeing this on stable/mitaka, but looks like it could still be an issue on master.