heat stack failed to delete due to "Expecting to find username or userId in passwordCredentials"

Bug #1547444 reported by jz
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Heat
New
Undecided
Unassigned

Bug Description

When do heat stress tess ,many heat stack failed to delete due to "resources.volume_attachment: Expecting to find username or userId in passwordCredentials - the server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error. (HTTP 400)"

the related logs are as follows:
The log trace I found:

heat-engine.log

2016-01-18 17:38:20.913 14651 DEBUG cinderclient.client [-] Unauthorized, reauthenticating. _cs_request /usr/lib/python2.7/dist-packages/cinderclient/client.py:277
2016-01-18 17:38:20.921 14651 INFO heat.engine.resource [-] DELETE: CinderVolume "volume" [1d68b786-0d15-40ad-b7f6-225ba7cb5e5b] Stack "s_rally_105da157_cGP4KXvB-wordpress_cluster-7c5sb4ybwz7x-3-3ix6jspitzq4-wordpress_volumes-wexhadnwdidf-0-ygpmrtsto6au" [17ebe95c-e230-4654-851c-dd6cc7c8f445]
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource Traceback (most recent call last):
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/resource.py", line 500, in _action_recorder
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource yield
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/resource.py", line 943, in delete
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource yield self.action_handler_task(action, *action_args)
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/scheduler.py", line 313, in wrapper
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource step = next(subtask)
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/resource.py", line 544, in action_handler_task
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource while not check(handler_data):
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/resources/aws/ec2/volume.py", line 202, in check_delete_complete
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource return delete_task.step()
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/scheduler.py", line 223, in step
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource next(self._runner)
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/scheduler.py", line 324, in wrapper
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource subtask = next(parent)
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/resources/aws/ec2/volume.py", line 186, in _delete
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource self.client_plugin().ignore_not_found(ex)
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource File "/usr/lib/python2.7/dist-packages/heat/engine/clients/client_plugin.py", line 171, in ignore_not_found
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource raise ex
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource BadRequest: Expecting to find username or userId in passwordCredentials - the server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error. (HTTP 400)
2016-01-18 17:38:20.921 14651 TRACE heat.engine.resource

cinder-api.log

cinder-api.log.1:2016-01-18 17:38:20.912 13794 INFO eventlet.wsgi.server [-] 10.155.21.157,10.155.21.162 - - [18/Jan/2016 17:38:20] "GET /v2/9decb24445704034b4daa94206bae1aa/volumes/1d68b786-0d15-40ad-b7f6-225ba7cb5e5b HTTP/1.1" 401 281 0.001667

keystone.log

keystone.log.1:2016-01-18 17:38:20.917 20325 DEBUG keystone.middleware.core [-] Auth token not in the request header. Will not build auth context. process_request /usr/lib/python2.7/dist-packages/keystone/middleware/core.py:229
keystone.log.1:2016-01-18 17:38:20.919 20325 INFO keystone.common.wsgi [-] POST /tokens?
keystone.log.1:2016-01-18 17:38:20.919 20325 WARNING keystone.common.wsgi [-] Expecting to find username or userId in passwordCredentials - the server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error.
keystone.log.1:2016-01-18 17:38:20.920 20325 INFO eventlet.wsgi.server [-] 10.155.21.157,10.155.21.162 - - [18/Jan/2016 17:38:20] "POST /v2.0/tokens HTTP/1.1" 400 441 0.003201

seems that the token is expired but due to heat did not pass the username and password to cinder client when initializing, cinder can not renew the token and reauthenticate.

Revision history for this message
Oleksii Chuprykov (ochuprykov) wrote :

You can use reauthentication_auth_method = trusts to force heat to use trusts https://github.com/openstack/heat/blob/master/heat/common/config.py#L100 .

Revision history for this message
jz (danielradcliffe2004) wrote :

It's not in the kilo version right? so I need to backport the code to the kilo version

Rico Lin (rico-lin)
Changed in heat:
milestone: none → no-priority-tag-bugs
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.