summaryrefslogtreecommitdiff
path: root/src/journal
AgeCommit message (Collapse)Author
2014-11-03journald: remove a number of malloc()s from the syslog message handlingLennart Poettering
2014-11-03journald: constify all things!Lennart Poettering
2014-10-30memfd: rename memfd.h to memfd-util.h to avoid any confusion with any libc ↵Lennart Poettering
provided headers
2014-10-30memfd: always use our internal utility functions where we have themLennart Poettering
2014-10-30journal: when sending huge log messages prefer memfds over temporary files ↵Lennart Poettering
in /dev/shm Previously when a log message grew beyond the maximum AF_UNIX/SOCK_DGRAM datagram limit we'd send an fd to a deleted file in /dev/shm instead. Because the sender could still modify the file after delivery we had to immediately copy the data on the receiving side. With memfds we can optimize this logic, and also remove the dependency on /dev/shm: simply send a sealed memfd around, and if we detect the seal memory map the fd and use it directly.
2014-10-27journald: be nice to coverity, add an extra assertLennart Poettering
coverity otherwise assumes that the chain object might be NULL.
2014-10-26journald: fix flushingZbigniew Jędrzejewski-Szmek
Commit 74055aa762 'journalctl: add new --flush command and make use of it in systemd-journal-flush.service' broke flushing because journald checks for the /run/systemd/journal/flushed file before opening the permanent journal. When the creation of this file was postponed, flushing stoppage ensued.
2014-10-25journalctl: correct help text for --untilSantiago Vila
http://bugs.debian.org/766598
2014-10-24journalctl: Unify boot id lookup into common function get_bootsJan Janssen
2014-10-24journald: removed gendered pronouns in commentKlaus Purer
2014-10-23journal: make sd_journal::files a OrderedHashmapMichal Schmidt
Anything that uses hashmap_next() almost certainly cares about the order and needs to be an OrderedHashmap.
2014-10-23journal: make Server::user_journals an OrderedHashmapMichal Schmidt
Order matters here. It replaces oldest entries first when USER_JOURNALS_MAX is reached.
2014-10-23journal: make JournalFile::chain_cache an OrderedHashmapMichal Schmidt
The order of entries may matter here. Oldest entries are evicted first when the cache is full. (Though I don't see anything to rejuvenate entries on cache hits.)
2014-10-23mac: also rename use_{smack,selinux,apparmor}() calls so that they share the ↵Lennart Poettering
new mac_{smack,selinux,apparmor}_xyz() convention
2014-10-23journalctl: add new --flush command and make use of it in ↵Lennart Poettering
systemd-journal-flush.service This new command will ask the journal daemon to flush all log data stored in /run to /var, and wait for it to complete. This is useful, so that in case of Storage=persistent we can order systemd-tmpfiles-setup afterwards, to ensure any possibly newly created directory in /var/log gets proper access mode and owners.
2014-10-22machine: validate machine names using machine_name_is_valid() instead of ↵Lennart Poettering
string_is_safe() After all, we know have this as generic validator, so let's be correct and use it wherver applicable.
2014-10-22journal: do server_vacuum for sigusr1WaLyong Cho
runtime journal is migrated to system journal when only "/run/systemd/journal/flushed" exist. It's ok but according to this the system journal directory size(max use) can be over the config. If journal is not rotated during some time the journal directory can be remained as over the config(or default) size. To avoid, do server_vacuum just after the system journal migration from runtime.
2014-10-22journalctl: don't introduce numeric constants with special names, give them ↵Lennart Poettering
names
2014-10-20sd-journal: consistently use ternary operator for all direction checksChristian Hesse
2014-10-12ModernizationZbigniew Jędrzejewski-Szmek
2014-10-09journalctl: use pager for --list-bootsZbigniew Jędrzejewski-Szmek
2014-10-09sd-journal: fix sd_journal_enumerate_unique skipping valuesJan Janssen
sd_journal_enumerate_unique will lock its mmap window to prevent it from being released by calling mmap_cache_get with keep_always=true. This call may return windows that are wider, but compatible with the parameters provided to it. This can result in a mismatch where the window to be released cannot properly be selected, because we have more than one window matching the parameters of mmap_cache_release. Therefore, introduce a release_cookie to be used when releasing the window. https://bugs.freedesktop.org/show_bug.cgi?id=79380
2014-10-09sd-journal: change check to assertZbigniew Jędrzejewski-Szmek
As of 0f99f74a14 'sd-journal: verify that object start with the field name' this condition should never happen.
2014-10-09sd-journal: do not reset sd_j_enumerate_unique position on errorZbigniew Jędrzejewski-Szmek
systemctl would call sd_j_enumerate_unique() interleaved with sd_j_next(). But the latter can remove a file if it detects an error in it. In those circumstances sd_j_enumerate_unique would restart with the first file in hashmap. With many corrupted files sd_j_enumerate_unique might iterate over the list multiple times. Avoid this by jumping to the next file in unique list if possible, or setting a flag that tells sd_j_enumerate_unique that it is done otherwise.
2014-10-08time: functions named "internal" really shouldn't be exportedLennart Poettering
Also, let's try to make function names descriptive, instead of using bools for flags.
2014-10-03journalctl: make --utc work everywhereJan Synacek
The --utc option was introduced by commit 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1. Howerver, the implementation was incomplete.
2014-10-02journalctl: add --utc optionJan Synacek
Introduce option to display time in UTC.
2014-09-29journalctl: do not output --reboot-- markers when running non-interactivelyZbigniew Jędrzejewski-Szmek
They are not legal in the export format.
2014-09-25journal: build fix when LZ4 is enabled but XZ is notGustavo Sverzut Barbieri
2014-09-19test: warn if we could not parse the loop count argumentThomas Hindoe Paaboel Andersen
Found by coverity. Fixes: CID#1237512
2014-09-18journal: Do not count on the compiler initializing found_last to falsePhilippe De Swert
There is a very unlikely case where this can happen since gcc usually does the sane thing. But let's make sure found_last is initialized anyway. Fixes: CID#996386
2014-09-15hashmap: introduce hash_ops to make struct Hashmap smallerMichal Schmidt
It is redundant to store 'hash' and 'compare' function pointers in struct Hashmap separately. The functions always comprise a pair. Store a single pointer to struct hash_ops instead. systemd keeps hundreds of hashmaps, so this saves a little bit of memory.
2014-09-11journal: do not leak mmaps on OOMPhilippe De Swert
After a section of memory is succesfully allocated, some of the following actions can still fail due to lack of memory. In this case -ENOMEM is returned without actually freeing the already mapped memory. Found with coverity. Fixes: CID#1237762
2014-09-11journal: do not dereference already freed patternsPhilippe De Swert
In case set_consume goes wrong, the pattern name has already been freed. So we do not try to print it in the logs, assuming the pattern addition print will be printed just before the failure anyway. Found with coverity. Fixes: CID#1237798
2014-08-31journalctl: Allow to disable line cap with --lines=allJan Janssen
2014-08-30test-compress: also test with incompressible inputsZbigniew Jędrzejewski-Szmek
2014-08-30journal/compress: use LZ4_compress_continue()Evangelos Foutras
We can't use LZ4_compress_limitedOutput_continue() because in the worst-case scenario the compressed output can be slightly bigger than the input block. This generally affects very few blocks and is no reason to abort the compression process. I ran into this when I noticed that Chromium core dumps weren't being compressed. After switching to LZ4_compress_continue() a ~330MB Chromium core dump gets compressed to ~17M.
2014-08-30Fix a few more typosRuben Kerkhof
2014-08-27sd-journal: verify that object start with the field nameZbigniew Jędrzejewski-Szmek
If the journal is corrupted, we might return an object that does not start with the expected field name and/or is shorter than it should.
2014-08-27sd-journal: properly convert object->size on big endianZbigniew Jędrzejewski-Szmek
mmap code crashes when attempting to map an object of zero size. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758392 https://bugs.freedesktop.org/show_bug.cgi?id=82894
2014-08-26sd-journal: never log anything by default from a libraryLennart Poettering
2014-08-26test-compress: make sure asserts with side effects use assert_se()Filipe Brandenburger
Otherwise the test fails when built with CPPFLAGS='-DNDEBUG' which disables assertions. Tested: - make check TESTS='test-compress' CPPFLAGS='-DNDEBUG'
2014-08-21notify: send STOPPING=1 from our daemonsLennart Poettering
2014-08-21journalctl: add "-t --identifier=STRING" optionHarald Hoyer
This turns journalctl to the counterpart of systemd-cat. Messages sent with systemd-cat --identifier foo --prioritiy debug can now be shown with journalctl --identifier foo --prioritiy debug "--identifier" is not merged with "--unit" to make a clear distinction between syslog and systemd units. syslog identifiers can be chosen freely by anyone.
2014-08-15coredump: display libdw fail string on stack trace failUmut Tezduyar Lindskog
- systemd[1]: hello.service: main process exited, code= dumped, status=3/QUIT - systemd-coredump[2541]: Failed to generate stack trace: Unwinding not supported for this architecture - systemd-coredump[2541]: Process 1024 (hello) of user 154 dumped core.
2014-08-13journald: Fix off-by-one error in "Missed X kernel messages" warningEelco Dolstra
On receiving a message, "kernel_seqnum" is set to "serial + 1". So subtracting 1 will cause messages like "Missed 0 kernel messages", which should be "Missed 1 kernel messages".
2014-08-05journald: remove redundant newlinesLennart Poettering
2014-08-05journald: properly sum up entry size counterLennart Poettering
We should read the entry size before moving to the next iovec, not after.
2014-08-03Fix misuse of uint64_t as size_tZbigniew Jędrzejewski-Szmek
They have different size on 32 bit, so they are really not interchangable.
2014-08-03Unify parse_argv styleZbigniew Jędrzejewski-Szmek
getopt is usually good at printing out a nice error message when commandline options are invalid. It distinguishes between an unknown option and a known option with a missing arg. It is better to let it do its job and not use opterr=0 unless we actually want to suppress messages. So remove opterr=0 in the few places where it wasn't really useful. When an error in options is encountered, we should not print a lengthy help() and overwhelm the user, when we know precisely what is wrong with the commandline. In addition, since help() prints to stdout, it should not be used except when requested with -h or --help. Also, simplify things here and there.