YARN-8515. container-executor can crash with SIGPIPE after nodemanager restart. Contributed by Jim Brennan

This commit is contained in:
Jason Lowe 2018-07-13 10:05:25 -05:00
parent d18507209e
commit 17118f446c

View File

@ -31,6 +31,7 @@
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <signal.h>
static void display_usage(FILE *stream) { static void display_usage(FILE *stream) {
fprintf(stream, fprintf(stream,
@ -112,6 +113,11 @@ static void open_log_files() {
if (ERRORFILE == NULL) { if (ERRORFILE == NULL) {
ERRORFILE = stderr; 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 */ /* Flushes and closes log files */