Repository: hadoop Updated Branches: refs/heads/branch-2.9 8d14f9b07 -> 402c799f5
YARN-8515. container-executor can crash with SIGPIPE after nodemanager restart. Contributed by Jim Brennan (cherry picked from commit 17118f446c2387aa796849da8b69a845d9d307d3) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/402c799f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/402c799f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/402c799f Branch: refs/heads/branch-2.9 Commit: 402c799f5e904068448ce41788891e935b9bfdd3 Parents: 8d14f9b Author: Jason Lowe <jl...@apache.org> Authored: Fri Jul 13 10:05:25 2018 -0500 Committer: Jason Lowe <jl...@apache.org> Committed: Fri Jul 13 10:17:07 2018 -0500 ---------------------------------------------------------------------- .../src/main/native/container-executor/impl/main.c | 6 ++++++ 1 file changed, 6 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/402c799f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/main.c ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/main.c b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/main.c index 6e32825..b913f16 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/main.c +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/main.c @@ -27,6 +27,7 @@ #include <unistd.h> #include <stdlib.h> #include <string.h> +#include <signal.h> static void display_usage(FILE *stream) { fprintf(stream, @@ -103,6 +104,11 @@ static void open_log_files() { if (ERRORFILE == NULL) { ERRORFILE = stderr; } + + // There may be a process reading from stdout/stderr, and if it + // exits, we will crash on a SIGPIPE when we try to write to them. + // By ignoring SIGPIPE, we can handle the EPIPE instead of crashing. + signal(SIGPIPE, SIG_IGN); } /* Flushes and closes log files */ --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org