summaryrefslogtreecommitdiff
path: root/src/basic/socket-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-02-08 21:16:08 +0100
committerSven Eden <yamakuzure@gmx.net>2017-05-17 15:22:16 +0200
commiteca14e5e08060323f5aace8c44f13e611ac9246d (patch)
treeb1cdfb3b4667fa9b6f372247c0c9f3cd50b38121 /src/basic/socket-util.c
parentefd35b9f3dcb9b08e991d56a686d41088e15841c (diff)
coredump: rework coredumping logic
This reworks the coredumping logic so that the coredump handler invoked from the kernel only collects runtime data about the crashed process, and then submits it for processing to a socket-activate coredump service, which extracts a stacktrace and writes the coredump to disk. This has a number of benefits: the disk IO and stack trace generation may take a substantial amount of resources, and hence should better be managed by PID 1, so that resource management applies. This patch uses RuntimeMaxSec=, Nice=, OOMScoreAdjust= and various sandboxing settings to ensure that the coredump handler doesn't take away unbounded resources from normally priorized processes. This logic is also nice since this makes sure the coredump processing and storage is delayed correctly until /var/elogind/coredump is mounted and writable. Fixes: #2286
Diffstat (limited to 'src/basic/socket-util.c')
-rw-r--r--src/basic/socket-util.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
index ee08a9c9c..404a1ba81 100644
--- a/src/basic/socket-util.c
+++ b/src/basic/socket-util.c
@@ -886,14 +886,13 @@ int send_one_fd_sa(
struct cmsghdr cmsghdr;
uint8_t buf[CMSG_SPACE(sizeof(int))];
} control = {};
- struct cmsghdr *cmsg;
-
struct msghdr mh = {
.msg_name = (struct sockaddr*) sa,
.msg_namelen = len,
.msg_control = &control,
.msg_controllen = sizeof(control),
};
+ struct cmsghdr *cmsg;
assert(transport_fd >= 0);
assert(fd >= 0);