summaryrefslogtreecommitdiff
path: root/src/journal/sd-journal.c
AgeCommit message (Collapse)Author
2012-11-21journal: by default do not decompress dat objects larger than 64KLennart Poettering
This introduces a new data threshold setting for sd_journal objects which controls the maximum size of objects to decompress. This is relieves the library from having to decompress full data objects even if a client program is only interested in the initial part of them. This speeds up "systemd-coredumpctl" drastically when invoked without parameters.
2012-11-20journal: add sd_journal_get_catalog_for_message_id() as API to get catalog ↵Lennart Poettering
entry for any message ID without requiring an open journal file
2012-11-16journal, shared: fix warnings during compilation on 32 bitsZbigniew Jędrzejewski-Szmek
Some filesystem magics are too big to fit in 31 bits, and are wrapped to negative. f_type is an int on 32 bits, so it is signed, and we get a warning on comparison.
2012-11-15journal: implement message catalogLennart Poettering
The message catalog can be used to attach short help texts to log lines, keyed by their MESSAGE_ID= fields. This is useful to help the administrator understand the context and cause of a message, find possible solutions and find further related documentation. Since this is keyed off MESSAGE_ID= this will only work for native journal messages. The message catalog supports i18n, and is useful to augment english language system messages with explanations in the local language. This commit only includes short explanatory messages for a few example message IDs, we'll add more complete documentation for the relevant systemd messages later on.
2012-10-26journal: provide an API that allows client to figure out whether they need ↵Lennart Poettering
to recheck the journal manually for changes in regular intervals Network file systems generally do not offer inotify() that would work across the network. We hence cannot rely on inotify() exclusiely in those case. Provide an API to determine these cases, and suggest doing manual regular rechecks. Note that this is not complete yet, as we need to rescan journal dirs on network file systems explicitly to find new/removed files
2012-10-26journal: properly determine cutoff max dateLennart Poettering
2012-10-18journal: typo fixLennart Poettering
2012-10-18journal: validate field name in sd_journal_query_unique()Lennart Poettering
2012-10-18libsystemd-journal: export sd_journal_restart_uniqueZbigniew Jędrzejewski-Szmek
2012-10-18journal: add ability to list values a specified field can take in all ↵Lennart Poettering
entries of the journal The new 'unique' API allows listing all unique field values that a field specified by a field name can take in all entries of the journal. This allows answering queries such as "What units logged to the journal?", "What hosts have logged into the journal?", "Which boot IDs have logged into the journal?". Ultimately this allows implementation of tools similar to lastlog based on journal data. Note that listing these field values will not work for journal files created with older journald, as the field values are not indexed in older files.
2012-10-16journalctl: properly track rotated journals in follow modeLennart Poettering
2012-10-16sd-journal: fix bad memory accessLennart Poettering
2012-10-10journal: when browsing the journal via browse.html allow clicking on entries ↵Lennart Poettering
to show their details
2012-10-10journal: drop path name from cursor stringsLennart Poettering
we had this mostly for debugging purposes and it was ignored when parsing anyway, so let's get rid of it
2012-10-10journal: make sure sd_journal_seek_cursor() seeks to the specified entry if ↵Lennart Poettering
it exists, not one after it
2012-09-28sd-journal: properly parse cursor stringsLennart 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-19journal: when comparing two entries from separate files make sure we ↵Lennart Poettering
reposition the mmap window The mmap cache doesn't guarantee that we can look at two files at the same time. Hence make sure to look at the entries to compare one after the other, instead of at the same time when comparing them, and reposition the window in between.
2012-09-07journal: add call to determine current journal file disk usageLennart Poettering
2012-08-23sd-journal: return null when mmap_cache_new failsLukas Nykryn
2012-08-18mmap: resize arrays dynamicallyLennart 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-07journalctl: include corrupted files in outputLennart Poettering
If a journal file was rotated away because it was corrupted or dirty we should still show its contents via "journalctl".
2012-07-19journal: allow watching symlinked journal dirsLennart Poettering
2012-07-19journal: when watching directories actually watch the directories asked forLennart Poettering
2012-07-19journal: follow symlinks when enumerating journalsLennart Poettering
2012-07-19journald: don't choke on journal files with no cutoff dateLennart Poettering
2012-07-17journal: size journal data hash table based on maximum file size metricsLennart Poettering
The default of 2047 hash table entries turned out to result in way too many collisions for bigger files, hence scale the hash table size by the estimated maximum file size.
2012-07-17journal: automatically rotate journal files if the data hash table is full > 75%Lennart Poettering
Previously, when the main data hash table grows too full the performance simply started to decrease drastically. Instead, now simply rotate to a new journal file as the hash table gets to full, so that we can start with a new fresh empty hash table.
2012-07-16Spelling fixes.Ville Skyttä
2012-07-15journal: align byte-buffer that gets cased to an objectKay Sievers
On Sun, Jul 15, 2012 at 2:00 PM, Koen Kooi <koen@dominion.thruhere.net> wrote: > | src/journal/sd-journal.c: In function 'sd_journal_process': > | src/journal/sd-journal.c:1891:21: warning: cast increases required alignment of target type [-Wcast-align] > | src/journal/sd-journal.c:1900:29: warning: cast increases required alignment of target type [-Wcast-align]
2012-07-13util: rename join() to strjoin()Lennart Poettering
This is to match strappend() and the other string related functions.
2012-07-13journal: beef up journal matches considerablyLennart Poettering
we now can take multiple matches, and they will apply as AND if they apply to different fields and OR if they apply to the same fields. Also, terms of this kind can be combined with an overreaching OR.
2012-07-13journal: check fields we search for more carefullyLennart Poettering
2012-07-13journal: fix interleaving of files with different time sourcesLennart Poettering
2012-07-11journalctl: add a marker to log output for rebootsLennart Poettering
With this we'll print a marker "----- Reboot -----" between two subsequent lines with different boot IDs.
2012-07-11journal: rework directory enumeration/watch logicLennart Poettering
There's now sd_journal_new_directory() for watching specific journal directories. This is exposed in journalctl -D. sd_journal_wait() and sd_journal_process() now return whether changes in the journal are invalidating or just appending. We now create inotify kernel watches only when we actually need them
2012-07-10journal: introduce sd_journal_wait() to simplify writing synchronous clientsLennart Poettering
2012-07-03journal: fix iteration through journal if one file is corruptLennart Poettering
2012-06-17journal: fix SD_JOURNAL_SYSTEM_ONLY flagLennart Poettering
2012-06-17journal: expose and make use of cutoff times of journalLennart Poettering
This helps explaining when the log output of "systemctl status" is incomplete because the logs got rotated since the service was started.
2012-05-30journal: don't allow adding invalid matches to the contextLennart Poettering
2012-05-30journalctl: for now complain if more than one match is provided since this ↵Lennart Poettering
is still broken
2012-05-08util: split-out path-util.[ch]Kay Sievers
2012-04-12relicense to LGPLv2.1 (with exceptions)Lennart Poettering
We finally got the OK from all contributors with non-trivial commits to relicense systemd from GPL2+ to LGPL2.1+. Some udev bits continue to be GPL2+ for now, but we are looking into relicensing them too, to allow free copy/paste of all code within systemd. The bits that used to be MIT continue to be MIT. The big benefit of the relicensing is that closed source code may now link against libsystemd-login.so and friends.
2012-03-27journal: properly handle if we interleave files with different boot idsLennart Poettering
If we try to locate a monotonic time in a file that doesn't have any entries with the matching boot id, then don't fail on it, simply fall back to calendar time.
2012-03-22add sparse support to detect endianness bugFrederic Crozat
le16/32/64_t type should be used when storing little-endian value header to integrate with sparse from Josh Triplett <josh@joshtriplett.org>
2012-03-14journal: Don't hold pointers to journal while remappingMarti Raudsepp
Hi! I was trying out the journal and the journalctl utility sometimes crashed on me. After some debugging, I tracked it down to the fact that next_with_matches() holds the "c" object pointer through the journal_file_next_entry_for_data() call -- which apparently may re-map the journal file, invalidating the pointer. The attached patch fixes this crash for me, but being unfamiliar with the code, I don't know if I'm doing the right thing. This patch is also available from my github repository: git://github.com/intgr/systemd.git https://github.com/intgr/systemd Regards, Marti For the record, here's the original stack trace at the time of remapping: ret=0x7fff1d5cdec0) at src/journal/journal-file.c:330 ret=0x7fff1d5cdf28) at src/journal/journal-file.c:414 ret=0x7fff1d5ce0a0, offset=0x7fff1d5ce098) at src/journal/journal-file.c:1101 i=5705, ret=0x7fff1d5ce0a0, offset=0x7fff1d5ce098) at src/journal/journal-file.c:1147 p=6413608, data_offset=66600, direction=DIRECTION_DOWN, ret=0x7fff1d5ce0a0, offset=0x7fff1d5ce098) at src/journal/journal-file.c:1626 direction=DIRECTION_DOWN, ret=0x7fff1d5ce120, offset=0x7fff1d5ce128) at src/journal/sd-journal.c:533 direction=DIRECTION_DOWN, ret=0x7fff1d5ce170, offset=0x7fff1d5ce178) at src/journal/sd-journal.c:595 src/journal/sd-journal.c:651 From 9266fc6a58065a7c5dab67430fd78925e519dce9 Mon Sep 17 00:00:00 2001 From: Marti Raudsepp <marti@juffo.org> Date: Fri, 9 Mar 2012 16:23:00 +0200 Subject: [PATCH] journal: Don't hold pointers to journal while remapping This would cause a segfault otherwise.
2012-01-21journal: systemd v38 fails to build on big-endiansDan Horák
Hi, during the builds for Fedora/s390x I've found that systemd v38 fails to build on big-endian platforms. ... make[2]: Entering directory `/root/systemd' CC src/journal/libsystemd_journal_la-sd-journal.lo src/journal/sd-journal.c: In function 'init_location': src/journal/sd-journal.c:69:22: error: incompatible types when initializing type 'long unsigned int' using type 'sd_id128_t' src/journal/sd-journal.c:69:20: error: incompatible types when assigning to type 'sd_id128_t' from type 'long unsigned int' make[2]: *** [src/journal/libsystemd_journal_la-sd-journal.lo] Error 1 I see the problem in using le64toh() on the 16 bytes boot_id structure in init_location() Please see http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=544375 for a full build log and attachment for a proposed fix. With regards Dan