Fix locking in select_connector of AuthHandler #833
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe your changes
Locking in select_connector
This PR covers #831 . It fixes the mutex locking when selecting a connector for an authorization request for the
SelectionAlgorithm::PlugEvents
. This could cause theget_latest_plugin
to return the same connector for two different authorization requests.With these changes every connector referenced by an authorization request is locked until this authorization request is processed (which means
handle_token
returns).Locking in reservation manager
This PR also adds locking
reservations
map of the reservation manager to make it thread safe.Fix test cases
This PR #832 commented out test cases that were sporadically failing in the CI. With this PR they are reactivated, since the changes described above fix the issue. In addition, the auth_tests have been updated by removing all unnecessary
std::chrono::sleep_for
and by making sure that the order of events meet the test cases expectations.Issue ticket number and link
#831
Checklist before requesting a review