From 2dd9c475c4b8631f9ff23375867dc6ea5f6a4943 Mon Sep 17 00:00:00 2001 From: Varun Vasudev Date: Wed, 14 Oct 2015 15:25:21 +0530 Subject: [PATCH] YARN-4255. container-executor does not clean up docker operation command files. Contributed by Sidharta Seethana. (cherry picked from commit da1ee078f9d3c2c25c51d0b392b0925821c42ad3) --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../native/container-executor/impl/container-executor.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index df4b7fe0820..abd0dd18904 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -885,6 +885,9 @@ Release 2.8.0 - UNRELEASED YARN-4253. Standardize on using PrivilegedOperationExecutor for all invocations of container-executor in LinuxContainerExecutor. (Sidharta Seethana via vvasudev) + YARN-4255. container-executor does not clean up docker operation command files. + (Sidharta Seethana via vvasudev) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c index 9feba1f2e3f..fd335b4ec25 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c @@ -1064,6 +1064,9 @@ int run_docker(const char *command_file) { snprintf(docker_command_with_binary, EXECUTOR_PATH_MAX, "%s %s", docker_binary, docker_command); char **args = extract_values_delim(docker_command_with_binary, " "); + //clean up command file before we exec + unlink(command_file); + int exit_code = -1; if (execvp(docker_binary, args) != 0) { fprintf(ERRORFILE, "Couldn't execute the container launch with args %s - %s", @@ -1360,6 +1363,9 @@ int launch_docker_container_as_user(const char * user, const char *app_id, } cleanup: + //clean up docker command file + unlink(command_file); + if (exit_code_file != NULL && write_exit_code_file(exit_code_file, exit_code) < 0) { fprintf (ERRORFILE, "Could not write exit code to file %s.\n", exit_code_file);