Avoid PATH overflow from SetupPython calls#11215
Merged
mmisol merged 1 commit intoDynamoDS:masterfrom Oct 29, 2020
Merged
Conversation
Calling Installer.SetupPython from Python.Included makes sure Python is installed and also adds the install location to the PATH env variable. The location is added to the PATH even if it was already there, so this can potentially lead to an env variable overflow with the message 'Environment variable name or value is too long', after which the only way to get CPython3 back to work would be to restart Dynamo. The problem is avoided by remembering if Python was setup using a local field. This should reduce the number of calls to a maximum of 2, which is not the best (1 would be) but is far from resulting in an overflow.
Member
|
@mmisol is it worth adding a test for this functionality to preserve this behavior in the future or you are satisfied with the comment? |
Collaborator
Author
|
Reproducing this with a unit test would be easy too, you would only need to execute code with CPython3 in a loop until you run into the overflow. I thought about it and went with the comment, since it seemed cleaner than that test. Let me know what you think. |
mjkkirschner
approved these changes
Oct 28, 2020
reddyashish
approved these changes
Oct 28, 2020
Collaborator
Author
|
Strange. The build is this https://master-5.jenkins.autodesk.com/job/Dynamo/job/DynamoSelfServe/job/pullRequestValidation/1689/ and it passed but somehow it got disconnected from the PR. Merging. |
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.
Purpose
Calling Installer.SetupPython from Python.Included makes sure Python is
installed and also adds the install location to the PATH env variable.
The location is added to the PATH even if it was already there, so this
can potentially lead to an env variable overflow with the message
'Environment variable name or value is too long', after which the only
way to get CPython3 back to work would be to restart Dynamo.
The problem is avoided by remembering if Python was setup using a local
field. This should reduce the number of calls to a maximum of 2, which
is not the best (1 would be) but is far from resulting in an overflow.
Declarations
Check these if you believe they are true
*.resxfiles