Fixup environment leakage for Command #740
Open
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.
The
Command
substitution was not using the context's environment to launch itself, and defaults to the parent process environment. This caused bugs, as described in #715, which I re-state below.Fixing this is very simple, just pass the environment of the context to the subprocess spawned in Command.
How to reproduce? I couldn't quite come up with a very simple unit test yet, but the below procedure should work.
First a simple executable:
Place it somewhere on your path, I named it print_env.py.
Then the following launch file:
This launches three "printenv" processes:
So I expect:
What I get: