summaryrefslogtreecommitdiff
path: root/src/journal/journald.c
AgeCommit message (Collapse)Author
2016-02-10tree-wide: remove Emacs lines from all filesDaniel Mack
This should be handled fine now by .dir-locals.el, so need to carry that stuff in every file.
2016-01-23journald: allow additional payload in server_driver_messageZbigniew Jędrzejewski-Szmek
The code to format the iovec is shared with log.c. All call sites to server_driver_message are changed to include the additional "MESSAGE=" part, but the new functionality is not used and change in functionality is not expected. iovec is preallocated, so the maximum number of messages is limited. In server_driver_message N_IOVEC_PAYLOAD_FIELDS is currently set to 1. New code is not oom safe, it will fail if memory cannot be allocated. This will be fixed in subsequent commit.
2015-11-16tree-wide: sort includesThomas Hindoe Paaboel Andersen
Sort the includes accoding to the new coding style.
2015-11-01journald: never block when sending messages on NOTIFY_SOCKET socketLennart Poettering
Otherwise we might run into deadlocks, when journald blocks on the notify socket on PID 1, and PID 1 blocks on IPC to dbus-daemon and dbus-daemon blocks on logging to journald. Break this cycle by making sure that journald never ever blocks on PID 1. Note that this change disables support for event loop watchdog support, as these messages are sent in blocking style by sd-event. That should not be a big loss though, as people reported frequent problems with the watchdog hitting journald on excessively slow IO. Fixes: #1505.
2015-10-02journal: rework vacuuming logicLennart Poettering
Implement a maximum limit on number of journal files to keep around. Enforcing a limit is useful on this since our performance when viewing pays a heavy penalty for each journal file to interleve. This setting is turned on now by default, and set to 100. Also, actully implement what 348ced909724a1331b85d57aede80a102a00e428 promised: use whatever we find on disk at startup as lower bound on how much disk space we can use. That commit introduced some provisions to implement this, but actually never did. This also adds "journalctl --vacuum-files=" to vacuum files on disk by their number explicitly.
2015-04-10shared: add formats-util.hRonny Chevalier
2015-02-23remove unused includesThomas Hindoe Paaboel Andersen
This patch removes includes that are not used. The removals were found with include-what-you-use which checks if any of the symbols from a header is in use.
2015-01-05journald: process SIGBUS for the memory maps we set upLennart Poettering
Even though we use fallocate() it appears that file systems like btrfs will trigger SIGBUS on certain low-disk-space situation. We should handle that, hence catch the signal, add it to a list of invalidated pages, and replace the page with an empty memory area. After each write check if SIGBUS was triggered, and consider the write invalid if it was. This should make journald a lot more robust with file systems where fallocate() is not reliable, for example all CoW file systems (btrfs...), where changing written data can fail with disk full errors. https://bugzilla.redhat.com/show_bug.cgi?id=1045810
2014-11-28treewide: no need to negate errno for log_*_errno()Michal Schmidt
It corrrectly handles both positive and negative errno values.
2014-11-28treewide: auto-convert the simple cases to log_*_errno()Michal Schmidt
As a followup to 086891e5c1 "log: add an "error" parameter to all low-level logging calls and intrdouce log_error_errno() as log calls that take error numbers", use sed to convert the simple cases to use the new macros: find . -name '*.[ch]' | xargs sed -r -i -e \ 's/log_(debug|info|notice|warning|error|emergency)\("(.*)%s"(.*), strerror\(-([a-zA-Z_]+)\)\);/log_\1_errno(-\4, "\2%m"\3);/' Multi-line log_*() invocations are not covered. And we also should add log_unit_*_errno().
2014-08-21notify: send STOPPING=1 from our daemonsLennart Poettering
2014-07-31Always prefer our headers to system headersZbigniew Jędrzejewski-Szmek
In practice this shouldn't make much difference, but sometimes our headers might be newer, and we want to test them.
2014-07-29time-util: add and use USEC/NSEC_INFINIYKay Sievers
2014-05-15Remove unnecessary casts in printfsZbigniew Jędrzejewski-Szmek
No functional change expected :)
2014-05-06journald: remove some dead codeLennart Poettering
2014-03-17journald: remove stray reset of error return valueZbigniew Jędrzejewski-Szmek
2013-12-22journal: when we shall go down do so cleanlyLennart Poettering
2013-12-11journald: port to sd-event and enable watchdog supportLennart Poettering
2013-03-23journald: remove unconditional log_*() use in the main loopKay Sievers
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.
2012-11-14build-sys: store journald code in a noinst libraryZbigniew Jędrzejewski-Szmek
The point is to allow the use of journald functions by other binaries. Before, journald code was split into multiple files (journald-*.[ch]), but all those files all required functions from journald.c. And journald.c has its own main(). Now, it is possible to link against those functions, e.g. from test binaries. This constitutes a fix for https://bugzilla.redhat.com/show_bug.cgi?id=872638. The patch does the following: 1. rename journald.h to journald-server.h and move corresponding code to journald-server.c. 2. add journald-server.c and other journald-*.c parts to libsystemd-journal-internal. 3. remove journald-syslog.c from test_journal_syslog_SOURCES, since it is now contained in libsystemd-journal-internal. There are no code changes, apart from the removal of a few static's, to allow function calls between files.
2012-10-16journal: implement time-based rotation/vacuumingLennart Poettering
This also enables time-based rotation (but not vacuuming) after 1month, so that not more one month of journal is lost at a time per vacuuming.
2012-10-13log: introduce a macro to format message idZbigniew Jędrzejewski-Szmek
The MESSAGE_ID=... stanza will appear in countless number of places. It is just too long to write it out in full each time. Incidentally, this also fixes a typo of MESSSAGE is three places.
2012-09-28journald: rework auto-rotation logicLennart Poettering
2012-09-28journald: close sd_journal context after flushing to /varLennart Poettering
2012-09-21journald: log how big the journal files may growLennart Poettering
2012-09-19util: define union dirent_storage and make use of it everywhereLennart Poettering
Make sure to allocate enough space for readdir_r(). https://bugzilla.redhat.com/show_bug.cgi?id=858754
2012-09-17journald: log when we fail to forward messages to syslogLennart Poettering
https://bugzilla.redhat.com/show_bug.cgi?id=847207
2012-09-17journald: properly update perms on freshly rotate user journalsLennart Poettering
2012-09-10journald: don't do debug logging by defaultLennart Poettering
2012-09-07journald: make splitting up of journal files per-user configurableLennart Poettering
2012-09-06journald: avoid logging to kmsg in the normal pathsLennart Poettering
2012-08-22journalctl: complain if unprivileged users attempt to access the journal and ↵Lennart Poettering
persistant logging is off
2012-08-22journal: the ratelimiter is part of journaldLennart Poettering
2012-08-22journald: split off native protocol support into its own .c fileLennart Poettering
2012-08-22journald: split console transport stuff into its own fileLennart Poettering
2012-08-22journald: move stream protocol into its own .c fileLennart Poettering
2012-08-22journald: splitt of syslog protocol support into its own fileLennart Poettering
2012-08-22journald: split /dev/kmsg related stuff into its own .c fileLennart Poettering
2012-08-22journald: write tags also to user journal filesLennart Poettering
2012-08-22journald: augment journal entries from the kernel with data from udevLennart Poettering
2012-08-21journal: properly handle EPIPE from /dev/kmsgLennart Poettering
2012-08-21journal: automatically evolve FSS key even when nothing is loggedLennart Poettering
2012-08-20journald: add new Seal= configuration optionLennart Poettering
2012-08-18mmap: resize arrays dynamicallyLennart Poettering
2012-08-16journal: split up journal-file.cLennart Poettering
2012-08-16journal: add superficial structure verifierLennart Poettering
2012-08-16journal: implement generic sharable mmap caching logicLennart Poettering
instead of having one simple per-file cache implement an more comprehensive one that works for multiple files and can actually maintain multiple maps per file and per object type.
2012-08-13journald: initial version of FSPRG hookupLennart Poettering
This adds forward-secure authentication of journal files. This patch includes key generation as well as tagging of journal files, Verification of journal files will be added in a later patch.
2012-08-09journald: never read the same kernel msg twice, and generate message when we ↵Lennart Poettering
lose one
2012-08-09journald: properly unescape messages from /dev/kmsgLennart Poettering