Fix running conda activate in multiple processes #8628 #9477
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.
bugfix for #8628
The cause of the problem:
_conda_activate.bat uses %RANDOM% env var to create a unique temp file.
That isn't very random, details here: https://devblogs.microsoft.com/oldnewthing/20100617-00/?p=13673
When starting multiple processes at the same time, they will try to create and use the same temp file.
The fix:
Create a random directory instead of a file, and check if the creation failed instead of checking the existence of the directory. Only one of the started processes will succeed, the rest will retry.