MAINT: avoid possible race condition by not touching os.environ on import#30637
Merged
mattip merged 1 commit intonumpy:mainfrom Jan 11, 2026
Merged
MAINT: avoid possible race condition by not touching os.environ on import#30637mattip merged 1 commit intonumpy:mainfrom
os.environ on import#30637mattip merged 1 commit intonumpy:mainfrom
Conversation
…import We need to set the `OPENBLAS_MAIN_FREE` environment variable before the OpenBLAS initialization runs, however we don't need to touch `os.environ` for that. Deleting a key from `os.environ` can lead to a race condition when numpy is imported in parallel in multiple threads, while `os.unsetenv` always succeeds. See numpygh-30627 for context. Also clean up `GOTOBLAS_MAIN_FREE`, that's a deprecated env var that has the same function as `OPENBLAS_MAIN_FREE`. There won't be any GotoBLAS or early OpenBLAS versions in use anymore that only have the GOTOBLAS flavor. Closes numpygh-30627 Closes numpygh-21223
Member
|
Thanks @rgommers |
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.
We need to set the
OPENBLAS_MAIN_FREEenvironment variable before the OpenBLAS initialization runs, however we don't need to touchos.environfor that. Deleting a key fromos.environcan lead to a race condition when numpy is imported in parallel in multiple threads (may lead to aKeyError), whileos.unsetenvalways succeeds. See gh-30627 for context.Also clean up
GOTOBLAS_MAIN_FREE, that's a deprecated env var that has the same function asOPENBLAS_MAIN_FREE. There won't be any GotoBLAS or early OpenBLAS versions in use anymore that only have the GOTOBLAS flavor.Closes gh-30627
Closes gh-21223