From 844b26eaf9fa4010f0457fd0ed782dac37e09517 Mon Sep 17 00:00:00 2001 From: Serge Simard Date: Tue, 25 Jun 2019 17:20:48 -0400 Subject: Remote Python executor Handler class process fails with Arguments list too long Issue-ID: CCSDK-1435 Change-Id: I02b1d8393c2506850cf37df6e3447d195f4fabb5 Signed-off-by: Serge Simard --- ms/command-executor/src/main/python/command_executor_handler.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'ms/command-executor') diff --git a/ms/command-executor/src/main/python/command_executor_handler.py b/ms/command-executor/src/main/python/command_executor_handler.py index 365c00188..305c83e17 100644 --- a/ms/command-executor/src/main/python/command_executor_handler.py +++ b/ms/command-executor/src/main/python/command_executor_handler.py @@ -163,9 +163,16 @@ class CommandExecutorHandler(): def activate_venv(self): self.logger.info("{} - Activate Python Virtual Environment".format(self.blueprint_id)) + # Fix: The python generated activate_this.py script concatenates the env bin dir to PATH on every call + # eventually this process PATH variable was so big (128Kb) that no child process could be spawn + # This script will remove all duplicates; while keeping the order of the PATH folders + fixpathenvvar = "os.environ['PATH']=os.pathsep.join(list(dict.fromkeys(os.environ['PATH'].split(':'))))" + path = "%s/bin/activate_this.py" % self.venv_home try: exec (open(path).read(), {'__file__': path}) + exec (fixpathenvvar) + self.logger.info("Running with PATH : {}".format(os.environ['PATH'])) return True except Exception as err: self.logger.info( -- cgit 1.2.3-korg