Global Plugins across Threads
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
keystoneauth |
Fix Released
|
Low
|
Jamie Lennox | ||
python-keystoneclient |
Fix Released
|
Low
|
Jamie Lennox |
Bug Description
Nova and other services that have global authentication configured in CONF have a problem that if multiple threads are using a token and it expires then they will all try to reauthenticate at once. This isn't a huge problem because they will just override each other with frest tokens but it's not ideal.
The sessions are thread safe and so can be stored globally on the process and we should make the plugins thread safe as well.
Initially I was thinking of putting a shim in so that requests to the plugin all have to go through a lock. However i think the easiest solution is to make a lock part of the plugin and say that all plugins should be thread safe. In reality the only part that is a problem is when you fetch new auth from the server so if we put a lock around that it will solve the problem for all known plugins (because they are either identity plugins or they are static).
Changed in keystoneauth: | |
assignee: | nobody → Jamie Lennox (jamielennox) |
status: | New → In Progress |
Changed in keystoneauth: | |
milestone: | none → 1.1.0 |
status: | Fix Committed → Fix Released |
Changed in python-keystoneclient: | |
milestone: | none → 1.8.0 |
status: | Fix Committed → Fix Released |
Fix proposed to branch: master /review. openstack. org/221738
Review: https:/