Skip to content

Conversation

@dmoerner
Copy link

@dmoerner dmoerner commented Aug 6, 2025

There is a recursive RLock in the path HandleIDPInitiated -> ServeIDPInitiated -> GetServiceProvider. This can lead to deadlocks under concurrent requests. The outer RLock is unnecessary, because GetServiceProvider is the only call to access the protected serviceProviders map, and it already guards access with RLock.

For further context from a similar issue, see:
clerk@91716e8

A similar fix for a different recursive rlock was already merged into upstream here: #553

There is a recursive RLock in the path `HandleIDPInitiated` ->
`ServeIDPInitiated` -> `GetServiceProvider`. This can lead to deadlocks
under concurrent requests. The outer RLock is unnecessary, because
`GetServiceProvider` is the only call to access the protected
`serviceProviders` map, and it already guards acces with RLock.

For further context from a similar issue, see:
91716e8
@dmoerner dmoerner marked this pull request as ready for review August 6, 2025 14:02
@dmoerner dmoerner requested a review from crewjam as a code owner August 6, 2025 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant