[Fix Python Deadlock] Guard grpc_ssl_credentials_create with nogil#34712
Merged
XuanWang-Amos merged 2 commits intogrpc:masterfrom Oct 18, 2023
Merged
[Fix Python Deadlock] Guard grpc_ssl_credentials_create with nogil#34712XuanWang-Amos merged 2 commits intogrpc:masterfrom
XuanWang-Amos merged 2 commits intogrpc:masterfrom
Conversation
gnossen
approved these changes
Oct 17, 2023
gnossen
reviewed
Oct 17, 2023
gnossen
approved these changes
Oct 17, 2023
XuanWang-Amos
added a commit
to XuanWang-Amos/grpc
that referenced
this pull request
Oct 18, 2023
…rpc#34712) Fix: grpc#34672 With some recent changes in core, now `grpc_ssl_credentials_create` is guarded by `gpr_once_init`. In our current implementation, The thread got `gpr_once_init` lock might require GIL lock during the execution of `grpc_ssl_credentials_create`, which might cause a deadlock if another thread is holding GIL lock and waiting for `gpr_once_init` lock. This change adds `with nogil` to calls to native function `grpc_ssl_credentials_create` to make sure GIL is released before calling `grpc_ssl_credentials_create`. <!-- If you know who should review your pull request, please assign it to that person, otherwise the pull request would get assigned randomly. If your pull request is for a specific language, please add the appropriate lang label. -->
XuanWang-Amos
added a commit
that referenced
this pull request
Oct 18, 2023
…1.59.x backport) (#34725) Backport of #34712 to v1.59.x. --- Fix: #34672 With some recent changes in core, now `grpc_ssl_credentials_create` is guarded by `gpr_once_init`. In our current implementation, The thread got `gpr_once_init` lock might require GIL lock during the execution of `grpc_ssl_credentials_create`, which might cause a deadlock if another thread is holding GIL lock and waiting for `gpr_once_init` lock. This change adds `with nogil` to calls to native function `grpc_ssl_credentials_create` to make sure GIL is released before calling `grpc_ssl_credentials_create`. <!-- If you know who should review your pull request, please assign it to that person, otherwise the pull request would get assigned randomly. If your pull request is for a specific language, please add the appropriate lang label. -->
copybara-service bot
pushed a commit
that referenced
this pull request
Apr 9, 2024
…th nogil (#36266) This fix is similar to #34712 but for `grpc_google_default_credentials_create` rather than `grpc_ssl_credentials_create` Fixes #36265 Fixes googleapis/python-bigtable#949 Closes #36266 COPYBARA_INTEGRATE_REVIEW=#36266 from parthea:repro-issue-34672 d736f6f PiperOrigin-RevId: 623291826
XuanWang-Amos
pushed a commit
to XuanWang-Amos/grpc
that referenced
this pull request
Apr 16, 2024
…th nogil (grpc#36266) This fix is similar to grpc#34712 but for `grpc_google_default_credentials_create` rather than `grpc_ssl_credentials_create` Fixes grpc#36265 Fixes googleapis/python-bigtable#949 Closes grpc#36266 COPYBARA_INTEGRATE_REVIEW=grpc#36266 from parthea:repro-issue-34672 d736f6f PiperOrigin-RevId: 623291826
XuanWang-Amos
added a commit
that referenced
this pull request
Apr 16, 2024
…th nogil (v1.62.x backport) (#36376) Backport of #36266 to v1.62.x. --- This fix is similar to #34712 but for `grpc_google_default_credentials_create` rather than `grpc_ssl_credentials_create` Fixes #36265 Fixes googleapis/python-bigtable#949 Co-authored-by: Anthonios Partheniou <partheniou@google.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fix: #34672
With some recent changes in core, now
grpc_ssl_credentials_createis guarded bygpr_once_init. In our current implementation, The thread gotgpr_once_initlock might require GIL lock during the execution ofgrpc_ssl_credentials_create, which might cause a deadlock if another thread is holding GIL lock and waiting forgpr_once_initlock.This change adds
with nogilto calls to native functiongrpc_ssl_credentials_createto make sure GIL is released before callinggrpc_ssl_credentials_create.