conmon: Create oom file for container on OOM notification

Signed-off-by: Mrunal Patel <mpatel@redhat.com>
This commit is contained in:
Mrunal Patel 2017-05-22 19:04:03 -07:00 committed by Mrunal Patel
parent 46f6248e42
commit 7700a62347

View file

@ -687,18 +687,28 @@ int main(int argc, char *argv[])
pipe = STDOUT_PIPE; pipe = STDOUT_PIPE;
else if (masterfd == masterfd_stderr) else if (masterfd == masterfd_stderr)
pipe = STDERR_PIPE; pipe = STDERR_PIPE;
else if (masterfd == efd) {
if (read(efd, &oom_event, sizeof(uint64_t)) != sizeof(uint64_t))
nwarn("Failed to read event from eventfd");
ninfo("OOM received");
if (open("oom", O_CREAT, 0666) < 0) {
nwarn("Failed to write oom file");
}
}
else { else {
nwarn("unknown pipe fd"); nwarn("unknown pipe fd");
goto out; goto out;
} }
num_read = read(masterfd, buf, BUF_SIZE); if (masterfd == masterfd_stdout || masterfd == masterfd_stderr) {
if (num_read <= 0) num_read = read(masterfd, buf, BUF_SIZE);
goto out; if (num_read <= 0)
goto out;
if (write_k8s_log(logfd, pipe, buf, num_read) < 0) { if (write_k8s_log(logfd, pipe, buf, num_read) < 0) {
nwarn("write_k8s_log failed"); nwarn("write_k8s_log failed");
goto out; goto out;
}
} }
} else if (evlist[i].events & (EPOLLHUP | EPOLLERR)) { } else if (evlist[i].events & (EPOLLHUP | EPOLLERR)) {
printf("closing fd %d\n", evlist[i].data.fd); printf("closing fd %d\n", evlist[i].data.fd);