Ensure that the PEX_ROOT is always a realpath. #2626
Merged
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.
In almost all codepaths, a
pex_root
will be a realpath. See, e.g.,pex/pex/pex_info.py
Line 511 in 06b8850
pex/pex/variables.py
Line 320 in 06b8850
However there was one codepath by which a non-realpath could
be obtained, namely
boot()
callingVariables.PEX_ROOT.value_or()
with a
raw_pex_root
given as the fallback value.This change ensures that
Variables.PEX_ROOT
is always a realpath.This manifested as a bug at pex boot time in the presence of a
symlinked cache dir: pantsbuild/pants#21321