summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2013-03-23 21:02:59 +0100
committerKay Sievers <kay@vrfy.org>2013-03-23 21:09:37 +0100
commit7964dfca1b6c4b37d069b3713f9f1b11219c3474 (patch)
treeed985274b12e3147fcf441f95c337a2024b8b964
parent7eb1dfcfc4c9c02e772e042c39f801c6fa8ad1b4 (diff)
journald: remove unconditional log_*() use in the main loop
Setting MaxRetentionSec= caused the kernel log to overflow and the journal daemon to enter an endless loop. Logging from the journald main loop gets directed to /dev/kmsg, which wakes up journald again. We skip the import of this message by checking for our own PID, but this still causes the main loop to never go to sleep again because we never stopped logging from there.
-rw-r--r--TODO10
-rw-r--r--src/journal/journald.c1
2 files changed, 0 insertions, 11 deletions
diff --git a/TODO b/TODO
index 565e85e07..132aeaccb 100644
--- a/TODO
+++ b/TODO
@@ -1,14 +1,4 @@
Bugfixes:
-* journal: setting MaxRetentionSec= to any value creates a /dev/kmsg loop:
- epoll_wait(7, {?} 0x7fff220df200, 1, 799489421) = 1
- read(8, "46,156226155,545165984,-;systemd"..., 8192) = 75
- writev(6, [{"<46>", 4}, {"systemd-journald", 16}, {"[3822]: ", 8}, {"Sleeping for 799489421 ms", 25}, {"\n", 1}], 5) = 54
- epoll_wait(7, {?} 0x7fff220df200, 1, 799489421) = 1
- read(8, "46,156226156,545166076,-;systemd"..., 8192) = 75
- writev(6, [{"<46>", 4}, {"systemd-journald", 16}, {"[3822]: ", 8}, {"Sleeping for 799489421 ms", 25}, {"\n", 1}], 5) = 54
- epoll_wait(7, {?} 0x7fff220df200, 1, 799489421) = 1
- https://bbs.archlinux.org/viewtopic.php?pid=1200373
-
* check systemd-tmpfiles for selinux context hookup for mknod(), symlink() and similar
* swap units that are activated by one name but shown in the kernel under another are semi-broken
diff --git a/src/journal/journald.c b/src/journal/journald.c
index d6b9be597..5fb10b1d3 100644
--- a/src/journal/journald.c
+++ b/src/journal/journald.c
@@ -88,7 +88,6 @@ int main(int argc, char *argv[]) {
/* Calculate when to rotate the next time */
t = (int) ((server.oldest_file_usec + server.max_retention_usec - n + USEC_PER_MSEC - 1) / USEC_PER_MSEC);
- log_info("Sleeping for %i ms", t);
}
#ifdef HAVE_GCRYPT