b26fa1a2fbcfee7d03b0c8fd15ec3aa64ae70b9f |
|
10-Feb-2016 |
Daniel Mack <daniel@zonque.org> |
tree-wide: remove Emacs lines from all files
This should be handled fine now by .dir-locals.el, so need to carry that
stuff in every file. |
1f133e0d538305edfce55198abadaa9a32ab23ab |
|
07-Feb-2016 |
Torstein Husebø <torstein@huseboe.net> |
treewide: fix typos and spacing |
ed71f95662af903f0c5eba32c439e77c5cec4e7b |
|
01-Feb-2016 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: minor optimization
No need to store the object and offset data if we don't actually need it ever. |
eb86030ec0e53ef3834d1b230440e88fdf020e9d |
|
01-Feb-2016 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: add an API to enumerate known field names of the journal
This adds two new calls to get the list of all journal fields names currently in use.
This is the low-level support to implement the feature requested in #2176 in a more optimized way. |
39fd5b08a73f144a20202a665bd25cad51d8a90b |
|
01-Feb-2016 |
Jan Synacek <jsynacek@redhat.com> |
sd-journal: introduce has_runtime_files and has_persistent_files
Also introduce sd_journal_has_runtime_files() and
sd_journal_has_persistent_files() to the public API. These functions
can be used to easily find out if the open journal files are runtime
and/or persistent. |
2aaec9b4f61c1c1fa3374f40f0f1e828b6c53e1e |
|
13-Dec-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: decompress_startswith can return an error
The return value was used directly in an if, so an error was treated
as success; we need to bail out instead. An error should not happen,
unless we have a compression/decompression mismatch, so output a debug
line. |
5768d2594940668506bb4cafa078f654cc20dc5a |
|
03-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
journalctl: when we fail to open a journal file, print why
When we enumerate journal files and encounter an invalid one, remember
which this, and show it to the user.
Note the possibly slightly surprising logic here: we store only one path
per error code. This means we show all error kinds but not every actual
error we encounter. This has the benefit of not requiring us to keep a
potentially unbounded list of errors with their sources around, but can
still provide a pretty complete overview on the errors we encountered.
Fixes #1669. |
d617408ecbe69db69aefddfcb10a6c054ea46ba0 |
|
03-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: various clean-ups and modernizations
- Always print a debug log message about files and directories we cannot
open right when it happens instead of the caller, thus reducing the
number of places where we need to generate the debug message.
- Always push the errors we encounter immediately into the error set,
when we run into them, instead of in the caller. Thus, we never forget
to push them in.
- Use stack instead of heap memory where we can.
- Make remove_file() void, since it cannot fail anyway and always
returned 0.
- Make local machine check of journal directories explicit in a
function, to make things more readable.
- Port to all directory listing loops FOREACH_DIRENT_ALL()
- sd-daemon is library code, hence never log at higher log levels than
LOG_DEBUG. |
7294bb5be2e152412022a4e5a05464ae99d95d67 |
|
31-Oct-2015 |
Susant Sahani <ssahani@gmail.com> |
sd-journal.c: port to extract_first_word |
7760171904ef007f19e8f46aa240a00e382d5b74 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move inotify-related definitions to fs-util.[ch] |
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ce |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out allocation calls into alloc-util.[ch] |
15a5e95075a7f6007dd97b2a165c8ed16fe683df |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out printf() helpers to stdio-util.h |
a09561746f15b84da9471b5c4be74e53d19e4f3f |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: introduce dirent-util.[ch] for directory entry calls
Also, move a couple of more path-related functions to path-util.c. |
c004493cdefc1f43a3956ca529e8070f8d70be56 |
|
26-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out IO related calls to io-util.[ch] |
3ffd4af22052963e7a29431721ee204e634bea75 |
|
25-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out fd-related operations into fd-util.[ch]
There are more than enough to deserve their own .c file, hence move them
over. |
07630cea1f3a845c09309f197ac7c4f11edd3b62 |
|
24-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split our string related calls from util.[ch] into its own file string-util.[ch]
There are more than enough calls doing string manipulations to deserve
its own files, hence do something about it.
This patch also sorts the #include blocks of all files that needed to be
updated, according to the sorting suggestions from CODING_STYLE. Since
pretty much every file needs our string manipulation functions this
effectively means that most files have sorted #include blocks now.
Also touches a few unrelated include files. |
25300b5a1fcf54674a69d0f4ab08925be00b0227 |
|
24-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
util: make machine_name_is_valid() a macro and move it to hostname-util.h
As it turns out machine_name_is_valid() does the exact same thing as
hostname_is_valid() these days, as it just invoked that and checked the
name length was < 64. However, hostname_is_valid() checks the length
against HOST_NAME_MAX anyway (which is 64 on Linux), hence any
additional check is redundant.
We hence replace machine_name_is_valid() by a macro that simply maps it
to hostname_is_valid() but sets the allow_trailing_dot parameter to
false. We also move this this call to hostname-util.h, to the same place
as the hostname_is_valid() declaration. |
b2b46f91dbb71676cb981907c68521e4b1e80af1 |
|
18-Aug-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
journal: remove error check that never happens
remove_directory will always return 0 so this can never happen.
Besides that, d->path and d are freed so we would end up with
a null pointer dereference anyway. |
6482f6269c87d2249e52e889a63adbdd50f2d691 |
|
10-Apr-2015 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
shared: add formats-util.h |
7b300be75e6d5755778dd7da63e7147866f21351 |
|
08-Mar-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
sd-journal: return error when we cannot open a file
Lack of this caused journalctl not to display a hint about missing groups
properly when the user lacks permissions. |
950c07d421c04e5aae99973479f4f13131fb45e1 |
|
25-Feb-2015 |
Michal Schmidt <mschmidt@redhat.com> |
journal: make skipping of exhausted journal files effective again
Commit 668c965af "journal: skipping of exhausted journal files is bad if
direction changed" fixed a correctness issue, but it also significantly
limited the cases where the optimization that skips exhausted journal
files could apply.
As a result, some journalctl queries are much slower in v219 than in v218.
(e.g. queries where a "--since" cutoff should have quickly eliminated
older journal files from consideration, but didn't.)
If already in the initial iteration find_location_with_matches() finds
no entry, the journal file's location is not updated. This is fine,
except that:
- We must update at least f->last_direction. The optimization relies on
it. Let's separate that from journal_file_save_location() and update
it immediately after the direction checks.
- The optimization was conditional on "f->current_offset > 0", but it
would always be 0 in this scenario. This check is unnecessary for the
optimization. |
0a6f50c0afdfc434b492493bd9efab20cbee8623 |
|
12-Feb-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
include <poll.h> instead of <sys/poll.h>
include-what-you-use automatically does this and it makes finding
unnecessary harder to spot. The only content of poll.h is a include
of sys/poll.h so should be harmless. |
63c372cb9df3bee01e3bf8cd7f96f336bddda846 |
|
03-Feb-2015 |
Lennart Poettering <lennart@poettering.net> |
util: rework strappenda(), and rename it strjoina()
After all it is now much more like strjoin() than strappend(). At the
same time, add support for NULL sentinels, even if they are normally not
necessary. |
5ffa8c818120e35c89becd938d160235c069dd12 |
|
01-Feb-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Add a snprinf wrapper which checks that the buffer was big enough
If we scale our buffer to be wide enough for the format string, we
should expect that the calculation was correct.
char_array_0() invocations are removed, since snprintf nul-terminates
the output in any case.
A similar wrapper is used for strftime calls, but only in timedatectl.c. |
9e8abdf0d9f0fa11fbceb02dfd36252bd32a534e |
|
29-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
Revert "journal: do not check for number of files"
This reverts commit b914ea8d379b446c4c9fac4ba181771676ef38cd.
We really need to put a limit on all our resources, everywhere, and in
particular if we operate on external data.
Hence, let's reintroduce the limit, but bump it substantially, so that
it is guaranteed to be higher than any realistic RLIMIT_NOFILE setting. |
b914ea8d379b446c4c9fac4ba181771676ef38cd |
|
09-Jan-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: do not check for number of files
Now that we bump rlimit, we do not really know how many files
we can open. Remove the check.
https://bugzilla.redhat.com/show_bug.cgi?id=1179980 |
0254e9448f3c645758ed63618a3bbb13c242f5e7 |
|
24-Dec-2014 |
Shawn Paul Landden <shawn@churchofgit.com> |
util: fix strict aliasing violations in use of struct inotify_event v5
There is alot of cleanup that will have to happen to turn on
-fstrict-aliasing, but I think our code should be "correct" to the rule. |
668c965af4e803f460925dc616f328ed274d1f3a |
|
19-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: skipping of exhausted journal files is bad if direction changed
EOF is meaningless if the direction of iteration changes.
Move the EOF optimization under the direction check.
This fixes test-journal-interleaving for me.
Thanks to Filipe Brandenburger for telling me about the failure. |
b29ddfcb389127cf00ab41447a721e479fe15713 |
|
19-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: make next_with_matches() always use f->current_offset
next_with_matches() is odd in that its "unit64_t *offset" parameter is
both input and output. In other it's purely for output.
The function is called from two places in next_beyond_location(). In
both of them "&cp" is used as the argument and in both cases cp is
guaranteed to equal f->current_offset.
Let's just have next_with_matches() ignore "*offset" on input and
operate with f->current_offset.
I did not investigate why it is, but it makes my usual benchmark run
reproducibly faster:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m4.032s
user 0m3.896s
sys 0m0.135s
(Compare to preceding commit, where real was 4.4s.) |
487d37209b30a536636c95479cfeba931fea25c5 |
|
19-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: fix skipping of duplicate entries in iteration
I accidentally broke the detection of duplicate entries in 7943f42275
"journal: optimize iteration by returning previously found candidate
entry".
When we have a known location of a candidate entry, we must not return
from next_beyond_location() immediately. We must go through the
duplicates detection to make sure the candidate differs from the
already iterated entry.
This fix slows down iteration a bit, but it's still faster than it
was before the rework.
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m4.448s
user 0m4.298s
sys 0m0.149s
(Compare with results from commit 7943f42275, where real was 5.3s before
the rework.) |
c2551e7105051f40b2bf77a5c1ecb2e720d78d77 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: next_with_matches() now does not need a mapped object as input
Now that journal_file_next_entry() does not need a pointer to the
current object, next_with_matches() does not need it either. |
f534928ad7aaeec0bec2d653b4a50e79b0fc8418 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: journal_file_next_entry() does not need pointer to current Object
The current offset is sufficient information. |
7943f42275025e1b6642b580b19b24dfab8dee61 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: optimize iteration by returning previously found candidate entry
In next_beyond_location() when the JournalFile's location type is
LOCATION_SEEK, it means there's nothing to do, because we already have
the location of the candidate entry. Do an early return. Note that now
next_beyond_location() does not anymore guarantee on return that the
entry is mapped, but previous patches made sure the caller does not
care.
This optimization is at least as good as "journal: optimize iteration:
skip files that cannot improve current candidate entry" was.
Timing results on my workstation, using:
$ time ./journalctl -q --since=2014-06-01 --until=2014-07-01 > /dev/null
Before "Revert "journal: optimize iteration: skip files that cannot
improve current candidate entry":
real 0m5.349s
user 0m5.166s
sys 0m0.181s
Now:
real 0m3.901s
user 0m3.724s
sys 0m0.176s |
6e693b42dcb0b332364b0414107826826925c49f |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: optimize iteration by skipping exhausted files
If from a previous iteration we know we are at the end of a journal
file, don't bother looking into the file again. This is complicated by
the fact that the EOF does not have to be permanent (think of
"journalctl -f"). So we also check if the number of entries in the
journal file changed.
This optimization has a similar effect as "journal: optimize iteration:
skip whole files behind current location" had. |
58439db4cc45a6f84a74ad73f873bd3c113eebf6 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: drop unnecessary parameters of next_beyond_location()
offset is redundant, because the caller can rely on f->current_offset.
The object pointer the function saves in *ret is thrown away by the caller. |
e499c9998bb42b792afb1acd3532fe975280c0fd |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: remove redundant variable new_offset
The file's current_offset is already updated at this point, so let's use
it. |
d8ae66d7faee23a74a69119270bf622100705f72 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: compare candidate entries using JournalFiles' locations
When comparing the locations of candidate entries, we can rely on the
location information stored in struct JournalFile. |
1eb6332d557e6e510a9ce723296cb3b658d7e9a4 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: simplify set_location()
set_location() is called from real_journal_next() when a winning entry
has been picked from among the candidates in journal files.
The location type is always set to LOCATION_DISCRETE. No need to pass
it as a parameter.
The per-JournalFile location information is already updated at this
point. No need for having the direction and offset here. |
6573ef05a3cbe15949acfbbf1ad03726068907bd |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: keep per-JournalFile location info during iteration
In next_beyond_location() when we find a candidate entry in a journal
file, save its location information in struct JournalFile.
The purpose of remembering the locations of candidate entries is to be
able to save work in the next iteration. This patch does only the
remembering part.
LOCATION_SEEK means the location identifies a candidate entry.
When a winner is picked from among candidates, it becomes
LOCATION_DISCRETE.
LOCATION_TAIL here signifies we've iterated the file to the end (or the
beginning in the case of reversed direction). |
1fc605b0e130149a44abfa38c33f4535cfe548ea |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: abstract the resetting of JournalFile's location |
8a2bd0a365b203a3c42de75d5c907a5c540fbb13 |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
Revert "journal: optimize iteration: skip whole files behind current location"
This reverts commit b7c88ab8cc7d55a43450bf3dea750f95f2e910d6.
This optimization will be made redundant by the following patches. |
0633cb5206924bb6fe183804eda2b696ae352cca |
|
18-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
Revert "journal: optimize iteration: skip files that cannot improve current candidate entry"
This reverts commit f8b5a3b75fb55f0acb85c21424b3893c822742e9.
This optimization will be made redundant by the following patches. |
d05089d86ef032b245c7f928e623b88c82998ab0 |
|
13-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: consistently use OBJECT_<type> names instead of numbers
Note that numbers 0 and -1 are both replaced with OBJECT_UNUSED,
because they are treated the same everywhere (e.g. type_to_context()
translates them both to 0). |
1b8951e5bd9b2bf1722098a861055cae0bb52088 |
|
13-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: remove journal_file_object_keep/release functions
The only user is sd_journal_enumerate_unique() and, as explained in
the previous commit (fed67c38e3 "journal: map objects to context set by
caller, not by actual object type"), the use of them there is now
superfluous. Let's remove them.
This reverts major parts of commits:
ae97089d49 journal: fix access to munmapped memory in
sd_journal_enumerate_unique
06cc69d44c sd-journal: fix sd_journal_enumerate_unique skipping values
Tested with an "--enable-debug" build and "journalctl --list-boots".
It gives the expected number of results. Additionally, if I then revert
the previous commit ("journal: map objects to context set by caller, not
to actual object type"), it crashes with SIGSEGV, as expected. |
f7c1ad4fd4190bee32db0aa26c8e9fe7e19d8816 |
|
10-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
core: unify how we iterate over inotify events
Let's add some syntactic sugar for iterating through inotify events, and
use it everywhere. |
f8b5a3b75fb55f0acb85c21424b3893c822742e9 |
|
09-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: optimize iteration: skip files that cannot improve current candidate entry
Suppose that while iterating we have already looked into a journal file
and got a candidate for the next entry. And we are considering to look
into another journal file because it may contain an entry that is nearer
to the current location than the candidate.
We should skip the whole journal file if we can tell by looking at its
header that none of its entries can precede the candidate.
Before:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m20.518s
user 0m19.989s
sys 0m0.328s
After:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m9.445s
user 0m9.228s
sys 0m0.213s |
b7c88ab8cc7d55a43450bf3dea750f95f2e910d6 |
|
09-Dec-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: optimize iteration: skip whole files behind current location
Interleaving of entries from many journal files is expensive. But there
is room for optimization.
We can skip looking into journal files whose entries all lie before the
current iterating location. We can tell if that's the case from looking
at the journal file header. This saves a huge amount of work if one has
many of mostly not interleaved journal files.
On my workstation with 90 journal files in /var/log/journal/ID/
totalling 3.4 GB I get these results:
Before:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 5m54.258s
user 2m4.263s
sys 3m48.965s
After:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m20.518s
user 0m19.989s
sys 0m0.328s
The high "sys" time in the original was caused by putting more stress on
the mmap-cache than it could handle. With the patch the working set
now consists of fewer mmap windows and mmap-cache is not thrashing. |
56f64d95763a799ba4475daf44d8e9f72a1bd474 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: use log_*_errno whenever %m is in the format string
If the format string contains %m, clearly errno must have a meaningful
value, so we might as well use log_*_errno to have ERRNO= logged.
Using:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\((".*%m.*")/log_\1_errno(errno, \2/'
Plus some whitespace, linewrap, and indent adjustments. |
c33b329709ebe2755181980a050d02ec7c81ed87 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: more log_*_errno() conversions, multiline calls
Basically:
find . -name '*.[ch]' | while read f; do perl -i.mmm -e \
'local $/;
local $_=<>;
s/log_(debug|info|notice|warning|error|emergency)\("([^"]*)%s"([^;]*),\s*strerror\(-?([->a-zA-Z_]+)\)\);/log_\1_errno(\4, "\2%m"\3);/gms;print;' \
$f; done
Plus manual indentation fixups. |
da927ba997d68401563b927f92e6e40e021a8e5c |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: no need to negate errno for log_*_errno()
It corrrectly handles both positive and negative errno values. |
0a1beeb64207eaa88ab9236787b1cbc2f704ae14 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: auto-convert the simple cases to log_*_errno()
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(). |
c1f906bd91c388fd84a006a56e1e6692e23f8ae3 |
|
23-Oct-2014 |
Michal Schmidt <mschmidt@redhat.com> |
journal: make sd_journal::files a OrderedHashmap
Anything that uses hashmap_next() almost certainly cares about the order
and needs to be an OrderedHashmap. |
affcf189153714f0de4d0986d18e2bc1b35c1b20 |
|
22-Oct-2014 |
Lennart Poettering <lennart@poettering.net> |
machine: validate machine names using machine_name_is_valid() instead of string_is_safe()
After all, we know have this as generic validator, so let's be correct
and use it wherver applicable. |
1cdf717550971ea4e3c637dc964822062645eaed |
|
20-Oct-2014 |
Christian Hesse <mail@eworm.de> |
sd-journal: consistently use ternary operator for all direction checks |
06cc69d44c8ff2b652527357f28acd4cbe77c814 |
|
10-Oct-2014 |
Jan Janssen <medhefgo@web.de> |
sd-journal: fix sd_journal_enumerate_unique skipping values
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 |
360af4cf6f18469df97c11af4cd5696e0ca8b3ef |
|
10-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
sd-journal: do not reset sd_j_enumerate_unique position on error
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. |
d5099efc47d4e6ac60816b5381a5f607ab03f06e |
|
15-Sep-2014 |
Michal Schmidt <mschmidt@redhat.com> |
hashmap: introduce hash_ops to make struct Hashmap smaller
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. |
0f99f74a14ef193c1ebde687c5cc76e1d67b85ef |
|
28-Aug-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
sd-journal: verify that object start with the field name
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. |
36202fd2bc252616966166c98ccb0e0e5ece1fc9 |
|
26-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: never log anything by default from a library |
fa1c4b518ec7d8ec2d647213ee651cde4d6c9d7e |
|
04-Aug-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Fix misuse of uint64_t as size_t
They have different size on 32 bit, so they are really not interchangable. |
a2a5291b3f5ab6ed4c92f51d0fd10a03047380d8 |
|
31-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Reject invalid quoted strings
String which ended in an unfinished quote were accepted, potentially
with bad memory accesses.
Reject anything which ends in a unfished quote, or contains
non-whitespace characters right after the closing quote.
_FOREACH_WORD now returns the invalid character in *state. But this return
value is not checked anywhere yet.
Also, make 'word' and 'state' variables const pointers, and rename 'w'
to 'word' in various places. Things are easier to read if the same name
is used consistently.
mbiebl_> am I correct that something like this doesn't work
mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-passwd "Unlock EncFS"'
mbiebl_> systemd seems to strip of the quotes
mbiebl_> systemctl status shows
mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-password Unlock EncFS $RootDir $MountPoint
mbiebl_> which is pretty weird |
1651e2c61e544de9ca947c8b3202552b1272ef57 |
|
19-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
man,journal: add note about sd_journal_get_cutoff_monotonic_usec return value
Also modify the function itself to be a bit simpler to read. |
3b1a55e110ab387a8d213581983e20c0a63d7894 |
|
11-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Fix build without any compression enabled |
1ec7120e50bc084342f8c44aea771c79aaeb774d |
|
08-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal/compress: fix calls to decompress_blob |
d89c8fdf48c7bad5816b9f2e77e8361721f22517 |
|
07-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: add LZ4 as optional compressor
Add liblz4 as an optional dependency when requested with --enable-lz4,
and use it in preference to liblzma for journal blob and coredump
compression. To retain backwards compatibility, XZ is used to
decompress old blobs.
Things will function correctly only with lz4-119.
Based on the benchmarks found on the web, lz4 seems to be the best
choice for "quick" compressors atm.
For pkg-config status, see http://code.google.com/p/lz4/issues/detail?id=135. |
590b6b9188e75ba46c42995984a1c2fa06adb6d6 |
|
25-May-2014 |
Cristian RodrĂguez <crrodriguez@opensuse.org> |
Use %m instead of strerror(errno) where appropiate |
de0671ee7fe465e108f62dcbbbe9366f81dd9e9a |
|
15-May-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Remove unnecessary casts in printfs
No functional change expected :) |
03e334a1c7dc8c20c38902aa039440763acc9b17 |
|
18-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
util: replace close_nointr_nofail() by a more useful safe_close()
safe_close() automatically becomes a NOP when a negative fd is passed,
and returns -1 unconditionally. This makes it easy to write lines like
this:
fd = safe_close(fd);
Which will close an fd if it is open, and reset the fd variable
correctly.
By making use of this new scheme we can drop a > 200 lines of code that
was required to test for non-negative fds or to reset the closed fd
variable afterwards. |
a9a245c128af6c0418085062c60251bc51fa4a94 |
|
05-Mar-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: forget file after encountering an error
If we encounter an inconsistency in a file, let's just
ignore it. Otherwise, after previous patch, we would try,
and fail, to use this file in every invocation of sd_journal_next
or sd_journal_previous that happens afterwards. |
bdd13f6be4b588568683a1ab54f421fc6a636dbb |
|
25-Feb-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Remove dead lines in various places
As pointed-out by clang -Wunreachable-code.
No behaviour changes. |
a002d44b008acd309987c37eb48009e3125a532c |
|
20-Feb-2014 |
Daniel Mack <zonque@gmail.com> |
journal: fix compiler warning in real_journal_next()
gcc (4.8.2, arm) does not understand that next_beyond_location() will
always set 'p' when it returns > 0. Initialize p in order to fix this. |
581483bf59ea62147739e71dd2216477be03411c |
|
19-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
journal: don't clobber return parameters of sd_journal_get_cutoff_realtime_usec() on failure |
39883f622f392d8579f4428fc5a789a102efbb10 |
|
19-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
make gcc shut up
If -flto is used then gcc will generate a lot more warnings than before,
among them a number of use-without-initialization warnings. Most of them
without are false positives, but let's make them go away, because it
doesn't really matter. |
73e231abde39f22097df50542c745e01de879836 |
|
18-Feb-2014 |
Jan Engelhardt <jengelh@inai.de> |
doc: update punctuation
Resolve spotted issues related to missing or extraneous commas, dashes. |
ae97089d49d1795a35a443b7b830ee666028e733 |
|
11-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: fix access to munmapped memory in sd_journal_enumerate_unique
sd_j_e_u needs to keep a reference to an object while comparing it
with possibly duplicate objects in other files. Because the size of
mmap cache is limited, with enough files and object to compare to,
at some point the object being compared would be munmapped, resulting
in a segmentation fault.
Fix this issue by turning keep_always into a reference count that can
be increased and decreased. Other callers which set keep_always=true
are unmodified: their references are never released but are ignored
when the whole file is closed, which happens at some point. keep_always
is increased in sd_j_e_u and later on released. |
bde1fdd773c5bc036370922e67ff3550a1f5cded |
|
22-Dec-2013 |
Florian Weimer <fweimer@redhat.com> |
journal: replace readdir_r with readdir
This commit also adds error handling for failures during
directory reading. |
e9174f29c7e3ee45137537b126458718913a3ec5 |
|
11-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
journald: cache cgroup root path, instead of querying it on every incoming log message |
897395791f53064d8c9a18cf6b6567404fbedf15 |
|
11-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
journal: when listing logs of a container make sure we don't accidentally show messages from host too |
b6741478e7661c7e580e5dcfd6a6fccd1899c1d0 |
|
11-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
journal: add ability to browse journals of running OS containers
This adds the new library call sd_journal_open_container() and a new
"-M" switch to journalctl. Particular care is taken that journalctl's
"-b" switch resolves to the current boot ID of the container, not the
host. |
1ae464e09376853c52075ec4d8a6bfc4b4036d0c |
|
02-Dec-2013 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
Use assert_return in more of the public API |
bf807d4dbf27c783db8dfd7f4eca321ae4be5b00 |
|
26-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
journald: keep statistics on how of we hit/miss the mmap cache |
baabc09191178a1d1a7454cd1b601a98dcb22976 |
|
08-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
journal: fix minor memory leak |
71fda00f320379f5cbee8e118848de98caaa229d |
|
14-Oct-2013 |
Lennart Poettering <lennart@poettering.net> |
list: make our list macros a bit easier to use by not requring type spec on each invocation
We can determine the list entry type via the typeof() gcc construct, and
so we should to make the macros much shorter to use. |
c51cf05646a11c65daf65c1123c77efb068f4f7b |
|
21-Aug-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Rename F_TYPE_CMP() to F_TYPE_EQUAL() |
4ad16808c02e3eb6c1ec8500b3d086cc28e9b75a |
|
17-Jul-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journalctl,systemctl: fix tiny memleak |
a65f06bb27688a6738f2f94b7f055f4c66768d63 |
|
16-Jul-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: return -ECHILD after a fork
A few asserts are replaced with 'return -EINVAL'. I think that
assert should not be used to check argument in public functions.
Fields in struct sd_journal are rearranged to make it less
swiss-cheesy. |
bc3029268ca0077f2e176724d7d124cec4265575 |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: change direction tests to use the same convention (cp </> np)
The order was different in various places, which makes it harder to
read to code. Also consistently use ternany for all direction checks.
Remove one free(NULL). |
87011c25d96e9fbcd8a465ba758fa037c7d08203 |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: remember last direction of search and keep offset cache
The fields in JournalFile are moved around to avoid wasting
7 bytes because of alignment. |
5302ebe15ff3a11eceb75e095e5a09d2a676de2b |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: add sd_journal_open_files
This allows the caller to explicitly specify which journal files
should be opened. The same functionality could be achieved before
by creating a directory and playing around with symlinks. It
is useful to debug stuff and explore the journal, and has been
requested before.
Waiting is supported, the journal will notice modifications on
the files supplied when opening the journal, but will not add
any new files. |
507f22bd0172bff5e5d98145b1419bd472a2c57f |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Use stdint.h macros instead of casts to print uint64_t values
Casts are visually heavy, and can obscure unwanted truncations. |
2bc8ca0ca2fefcfb63a37723d7a9bbb9ae76ceb1 |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: loop less in MATCH_AND_TERM conditionals
AND term usually don't have many subterms (4 seems to be the maximum
sensible number, e.g. _BOOT_ID && _SYSTEMD_UNIT && _PID && MESSAGE_ID).
Nevertheless, the cost of checking each subterm can be relatively
high, especially when the nested terms are compound, and it
makes sense to minimize the number of checks.
Instead of looping to the end and then again over the whole list once
again after at least one term changed the offset, start the loop at
the term which caused the change. This way ½ terms in the AND match
are not checked unnecessarily again. |
a688baa8b71f9c74500f7883dfb137194874266a |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: add ability to filter by current user
This is the just the library part.
SD_JOURNAL_CURRENT_USER flags is added to sd_j_open(), to open
files from current user.
SD_JOURNAL_SYSTEM_ONLY is renamed to SD_JOURNAL_SYSTEM,
and changed to mean to (also) open system files. This way various
flags can be combined, which gives them nicer semantics, especially
if other ones are added later.
Backwards compatibility is kept, because SD_JOURNAL_SYSTEM_ONLY
is equivalent to SD_JOURNAL_SYSTEM if used alone, and before there
we no other flags. |
c5a10d9ca017be6133154e09383c84c3d5b85f7c |
|
10-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: simplify match_free_if_empty |
5ec76417764e19486261fb8e38e8e71b28185b37 |
|
04-Jun-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemctl: limit logs in status to current boot
Also reworded a few debug messages for brevity, and added a log
statement which prints out the filter at debug level:
Journal filter: (((UNIT=sys-module-configfs.device AND _PID=1) OR (COREDUMP_UNIT=sys-module-configfs.device AND MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1) OR _SYSTEMD_UNIT=sys-module-configfs.device) AND _BOOT_ID=4e3c518ab0474c12ac8de7896fe6b154) |
39887731d4a36292674f92effa30e5941419c201 |
|
15-May-2013 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
sd-journal: check if the pointers passed are the same |
5afbe712db5cc68213a24c45396ffb43fab05e3e |
|
09-May-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd-python: add __version__ strings |
44a6b1b68029833893f6e9cee35aa27a974038f6 |
|
03-May-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Add __attribute__((const, pure, format)) in various places
I'm assuming that it's fine if a _const_ or _pure_ function
calls assert. It is assumed that the assert won't trigger,
and even if it does, it can only trigger on the first call
with a given set of parameters, and we don't care if the
compiler moves the order of calls. |
bdd29249a882e599e5e365536372d08dee398cd4 |
|
19-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
Reintroduce f_type comparison macro
This reverts commit 4826f0b7b5c0aefa08b8cc7ef64d69027f84da2c.
Because statfs.t_type can be int on some architecures, we have to cast
the const magic to the type, otherwise the compiler warns about
signed/unsigned comparison, because the magic can be 32 bit unsigned.
statfs(2) man page is also wrong on some systems, because
f_type is not __SWORD_TYPE on some architecures.
The following program:
int main(int argc, char**argv)
{
struct statfs s;
statfs(argv[1], &s);
printf("sizeof(f_type) = %d\n", sizeof(s.f_type));
printf("sizeof(__SWORD_TYPE) = %d\n", sizeof(__SWORD_TYPE));
printf("sizeof(long) = %d\n", sizeof(long));
printf("sizeof(int) = %d\n", sizeof(int));
if (sizeof(s.f_type) == sizeof(int)) {
printf("f_type = 0x%x\n", s.f_type);
} else {
printf("f_type = 0x%lx\n", s.f_type);
}
return 0;
}
executed on s390x gives for a btrfs:
sizeof(f_type) = 4
sizeof(__SWORD_TYPE) = 8
sizeof(long) = 8
sizeof(int) = 4
f_type = 0x9123683e |
a3e6f050de81a9830e52af09d5d38dad9a356e3b |
|
18-Apr-2013 |
Marius Vollmer <marius.vollmer@redhat.com> |
journal: when iterating through a file we might lose messages when changing direction.
https://bugs.freedesktop.org/show_bug.cgi?id=63672 |
4826f0b7b5c0aefa08b8cc7ef64d69027f84da2c |
|
18-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
Revert f_type fixups
This reverts commit a858b64dddf79177e12ed30f5e8c47a1471c8bfe.
This reverts commit aea275c43194b6ac519ef907b62c5c995050fde0.
This reverts commit fc6e6d245ee3989c222a2a8cc82a33475f9922f3.
This reverts commit c4073a27c555aeceac87a3b02a83141cde641a1e.
This reverts commit cddf148028f525be8176e7f1cbbf4f862bd287f6.
This reverts commit 8c68a70170b31f93c287f29fd06c6c17edaf19ad.
The constants are now casted to __SWORD_TYPE, which should resolve the
compiler warnings about signed vs unsigned.
After talking to Kay, we concluded:
This should be fixed in the kernel, not worked around in userspace tools.
Architectures cannot use int and expect magic constants lager than INT_MAX
to work correctly. The kernel header needs to be fixed.
Even coreutils cannot handle it:
#define RAMFS_MAGIC 0x858458f6
# stat -f -c%t /
ffffffff858458f6
#define BTRFS_SUPER_MAGIC 0x9123683E
# stat -f -c%t /mnt
ffffffff9123683e
Although I found the perfect working macro to fix the thing :)
__extension__ ({ \
bool _ret = false; \
switch(f) { case c: _ret=true; }; \
( _ret ); \
}) |
7fd1b19bc9e9f5574f2877936b8ac267c7706947 |
|
18-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
move _cleanup_ attribute in front of the type
http://lists.freedesktop.org/archives/systemd-devel/2013-April/010510.html |
aea275c43194b6ac519ef907b62c5c995050fde0 |
|
18-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
rename CMP_F_TYPE to F_TYPE_CMP |
fc6e6d245ee3989c222a2a8cc82a33475f9922f3 |
|
18-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
Add ugly CMP_F_TYPE() macro
On some architectures (like s390x) the kernel has the type int for
f_type, but long in userspace.
Assigning the 32 bit magic constants from linux/magic.h to the 31 bit
signed f_type in the kernel, causes f_type to be negative for some
constants.
glibc extends the int to long for those architecures in 64 bit mode, so
the negative int becomes a negative long, which cannot be simply
compared to the original magic constant, because the compiler would
automatically cast the constant to long.
To workaround this issue, we also compare to the (int)MAGIC value in a
macro. Of course, we could do #ifdef with the architecure, but it has to
be maintained, and the magic constants are 32 bit anyway.
Someday, when the int is unsigned or long for all architectures, we can
remove this macro again. Until then, keep it as simple as it can be. |
c4073a27c555aeceac87a3b02a83141cde641a1e |
|
17-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
fixup for cddf148028f52
Instead of making a type up, just use __SWORD_TYPE, after reading
statfs(2).
Too bad, this does not fix s390x because __SWORD_TYPE is (long int) and
the kernel uses (int) to fill in the field!!!!!! |
cddf148028f525be8176e7f1cbbf4f862bd287f6 |
|
17-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
fixup 8c68a7017 and cast to (unsigned long) |
8c68a70170b31f93c287f29fd06c6c17edaf19ad |
|
17-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
fixed statfs.f_type signed vs unsigned comparisons
statfs.f_type is signed but the filesystem magics are unsigned.
Casting the magics to signed will not make the signed.
Problem seen on big-endian 64bit s390x with __fsword_t 8 bytes.
Casting statfs.f_type to unsigned on the other hand will get us what we
need.
https://bugzilla.redhat.com/show_bug.cgi?id=953217 |
cd34b3c6670df8a3fd49179131fe762b2dd86b01 |
|
17-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
journal: add one more level on top with AND
When using "-p" and "-b" in combination with "-u", the output is not
what you would expect. The reason is the sd_journal_add_disjunction()
call in add_matches_for_unit() and add_matches_for_user_unit(), which
adds two ORs without taking the other conditions to every OR.
Adding another level on top with AND and sd_journal_add_conjunction()
solves the problem.
Output before:
$ journalctl -o short-monotonic -ab -p 0 -u sshd.service
-- Reboot --
[ 3.216305] lenovo systemd[1]: Starting OpenSSH server daemon...
-- Reboot --
[ 3.168666] lenovo systemd[1]: Starting OpenSSH server daemon...
[ 3.169639] lenovo systemd[1]: Started OpenSSH server daemon.
[36285.635389] lenovo systemd[1]: Stopped OpenSSH server daemon.
-- Reboot --
[ 10.838657] lenovo systemd[1]: Starting OpenSSH server daemon...
[ 10.913698] lenovo systemd[1]: Started OpenSSH server daemon.
[ 6881.035183] lenovo systemd[1]: Stopped OpenSSH server daemon.
-- Reboot --
[ 6.636228] lenovo systemd[1]: Starting OpenSSH server daemon...
[ 6.662573] lenovo systemd[1]: Started OpenSSH server daemon.
[ 6.681148] lenovo sshd[397]: Server listening on 0.0.0.0 port 22.
[ 6.681379] lenovo sshd[397]: Server listening on :: port 22.
As we see, the output is from _every_ boot and priority 0 is not taken
into account.
Output after patch:
$ journalctl -o short-monotonic -ab -p 0 -u sshd.service
-- Logs begin at Sun 2013-02-24 20:54:44 CET, end at Tue 2013-03-19 14:58:21 CET. --
Increasing the priority:
$ journalctl -o short-monotonic -ab -p 6 -u sshd.service
-- Logs begin at Sun 2013-02-24 20:54:44 CET, end at Tue 2013-03-19 14:59:12 CET. --
[ 6.636228] lenovo systemd[1]: Starting OpenSSH server daemon...
[ 6.662573] lenovo systemd[1]: Started OpenSSH server daemon.
[ 6.681148] lenovo sshd[397]: Server listening on 0.0.0.0 port 22.
[ 6.681379] lenovo sshd[397]: Server listening on :: port 22. |
23e97f7d9274b90fb0e1664945dc6259fdae6d39 |
|
08-Apr-2013 |
Marius Vollmer <mvollmer@redhat.com> |
journal: Fix typo
This would break backwards skipping.
https://bugs.freedesktop.org/show_bug.cgi?id=63250 |
39c155ea0d8b24895017fd5cf48508924ce2016d |
|
04-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
journal: add sd_journal_get_timeout() call to public API
Let's do the wake-up logic on NFS internally, making things simpler for
users. |
ee531d949c2f62374fc109252f8cbe61c2b8ee39 |
|
04-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
journal: add public API call sd_journal_get_events()
This function should be used when filling in "struct pollfd"'s .events
field for watching the journal. It will always return POLLIN for now,
but we should keep our options open to change this later on.
This mimics libsystemd-bus' sd_bus_get_events() call with the same
purpose. |
844ec79b3c2f246114ea316ebe1f36044bdb688e |
|
29-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
catalog: open up catalog internals
In order to write tests for the catalog functions, they
are made non-static and start taking a 'database' parameter,
which is the name of a file with the preprocessed catalog
entries.
This makes it possible to make test-catalog part of the
normal test suite, since it now only operates on files
in /tmp.
Some more tests are added. |
54b1da83ed8cadde4a53b541a48ce303ade862f7 |
|
23-Mar-2013 |
Lennart Poettering <lennart@poettering.net> |
journal: don't access j->files after use
https://bugs.freedesktop.org/show_bug.cgi?id=62605 |
3ac251b81a41295a90c89c164f0d72ce6de651aa |
|
23-Mar-2013 |
Lennart Poettering <lennart@poettering.net> |
journalctl: various fixes to the access check logic
- Reword messages a bit
- Correct check whether EACCES is in the set of errors
- Don't complain if no journal files are found
- allocate Set object for errors lazily since in the best case we don't
need it at all.
- don't consider it an error if /run/log/journal doesn't exist (because
that's the usual case actually, if storage is enabled) |
6fe391c56d3f4231576ccc9d62d2000f37640a92 |
|
22-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journalctl: be smarter about journal error checks
There are many ways in which we can get those checks wrong, so it is
better to warn and then error out on a real access failure.
The error messages are wrapped to <80 lines, because their primary
use is to be displayed in the terminal, and it is easier to read them
this way. Reading them in the journal can be a bit trickier, but
this is a bug in logs-show.c. |
8cb17a6dc88cecfcee3189765031e9e8a1f4106b |
|
19-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
sd-journal: do not require path to be absolute
Seems natural to be able to specify relative directory,
e.g. with journalctl -D. And even if, this should be checked
in front-end code, not in the library. |
a50d7d4389217c0d3b527ee260eabf89e4a76caa |
|
18-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: use _cleanup_
One log_debug() moved to match order in other functions. |
6180fc611b415e2a26c64658d2ce700f457f4a67 |
|
18-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: use sd_journal_close on error in sd_journal_new |
99613ec5d7f0c6e30801457f60c2cab7d8e50d8d |
|
07-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
libsystemd-journal: return 0 on success in get_data()
The man page says so. Right now 0 would be returned if the data was encrypted,
1 otherwise. |
d95b1fb315f62313be5bee5bee3b2d1467868a7d |
|
27-Feb-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
log-show: look at everything in /run/log/journal
Logs written by journald from the initramfs may be written to a
directory with the name created from a random machine-id. Afterwards,
when the root filesystem has been mounted and machine-id reinitalized,
logs will be written to the directory with a name created from the
proper machine-id. When logs are flushed to /var/log/journal,
everything is copied to one output directory.
When journalctl without '-m' is run after the logs have been flushed
to /var/log/journal, all messages are shown. However, when run while
logs are still in /run/log/journal, those stored under the random
machine-id will not be shown.
Make journalctl behave the same regardless whether persistent storage
has been enabled or not, and slurp all files from /run/log/journal
even without '-m'. |
6f47ad30250cf467065a19105013321ee4973694 |
|
22-Feb-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal: sd_journal_get_cursor should return 0 on success
Documentation states that 0 is correct, and all other
similar functions return 0 on success.
Pointed-out-by: Steven Hiscocks <steven-systemd@hiscocks.me.uk> |
93b73b064c663d6248bebfbbbd82989b5ca10fc5 |
|
21-Nov-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: by default do not decompress dat objects larger than 64K
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. |
8f1e860f8a55e2baa336a5abb7e53abb3f77a9ad |
|
20-Nov-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: add sd_journal_get_catalog_for_message_id() as API to get catalog entry for any message ID without requiring an open journal file |
943aad8ca57a6b5c49c4ea60f9e8c13bf9b20e6c |
|
16-Nov-2012 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journal, shared: fix warnings during compilation on 32 bits
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. |
d4205751d4643c272059a3728045929dd0e5e800 |
|
15-Nov-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: implement message catalog
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. |
85210bffd8363e491b4c31f2d09404f9869ad0c7 |
|
26-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: provide an API that allows client to figure out whether they need 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 |
0f91dd8749c1a1ec308cc645269be92166413e38 |
|
26-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: properly determine cutoff max date |
bdc02927f78180816bcc46e25e72ca0436a2268f |
|
18-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: typo fix |
d5c4ed623b3b83b8caaf6b26f5b4c8006ff372ac |
|
18-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: validate field name in sd_journal_query_unique() |
115646c789d84ea182c5eab6b0945263e3c49305 |
|
18-Oct-2012 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
libsystemd-journal: export sd_journal_restart_unique |
3c1668da6202f1ead3d4d3981b89e9da1a0e98e3 |
|
18-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: add ability to list values a specified field can take in all 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. |
5e6870eab5aa00675e4cd2f914fd1c25642fc964 |
|
16-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journalctl: properly track rotated journals in follow mode |
44a5fa34d9f9a5050cdf4a497e6ccf5af2d1678d |
|
16-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: fix bad memory access |
c6511e859c35b12de4e6fb5f58d7258d9de3b8f2 |
|
10-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: when browsing the journal via browse.html allow clicking on entries to show their details |
934a316cbf68c46f05b7ce0b35fc312eca786747 |
|
10-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: drop path name from cursor strings
we had this mostly for debugging purposes and it was ignored when
parsing anyway, so let's get rid of it |
a87247dd5dc3892f858e920d09b16cc2a8b9b3c4 |
|
10-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: make sure sd_journal_seek_cursor() seeks to the specified entry if it exists, not one after it |
be3ea5eaf24f4507efe88b450f751da860a9d21c |
|
28-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: properly parse cursor strings |
7d5e9c0f60cddf01ec803012cbdc02d2f55b78c1 |
|
19-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
util: define union dirent_storage and make use of it everywhere
Make sure to allocate enough space for readdir_r().
https://bugzilla.redhat.com/show_bug.cgi?id=858754 |
468b21de7c9327bb8747d36e6273ed7aed97052a |
|
19-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: when comparing two entries from separate files make sure we 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. |
a1a03e3075316e2376176fc54c74e071adc9d71a |
|
07-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: add call to determine current journal file disk usage |
f284860764076e2a1f0b34eb4c681bb2762f7889 |
|
23-Aug-2012 |
Lukas Nykryn <lnykryn@redhat.com> |
sd-journal: return null when mmap_cache_new fails |
84168d8068bb67dcd5468ab3b376535d81643aef |
|
18-Aug-2012 |
Lennart Poettering <lennart@poettering.net> |
mmap: resize arrays dynamically |
16e9f408fa9a9626059bdd6c89dc175e06b9e976 |
|
16-Aug-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: implement generic sharable mmap caching logic
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. |
7560fffcd2531786b9c1ca657667a43e90331326 |
|
13-Aug-2012 |
Lennart Poettering <lennart@poettering.net> |
journald: initial version of FSPRG hookup
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. |
de2c390731e563db0ee383bfd0073fdbef643ca2 |
|
07-Aug-2012 |
Lennart Poettering <lennart@poettering.net> |
journalctl: include corrupted files in output
If a journal file was rotated away because it was corrupted or dirty we
should still show its contents via "journalctl". |
4a842cadb8d6b30fa9fdc8ff183633c14e02cf96 |
|
19-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: allow watching symlinked journal dirs |
7827b1a10f4dfe2c6771b515f28f7ae22e0ae039 |
|
19-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: when watching directories actually watch the directories asked for |
6f5878a286c34739d8d6759de5f5a77e56daeb61 |
|
19-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: follow symlinks when enumerating journals |
9f8d29834ba97052403e50ec9b358c0470fa4ceb |
|
19-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journald: don't choke on journal files with no cutoff date |
4a92baf3fa97c73f04438b5814db58783f920b32 |
|
17-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: size journal data hash table based on maximum file size metrics
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. |
dca6219e04505e9fa10b32e71059ce2abfae1dad |
|
17-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: automatically rotate journal files if the data hash table is full > 75%
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. |
49f43d5f91a99b23f745726aa351d8f159774357 |
|
16-Jul-2012 |
Ville Skyttä <ville.skytta@iki.fi> |
Spelling fixes. |
19d1e4eeb6501b77ba34a29e6a632fcf775fccd5 |
|
15-Jul-2012 |
Kay Sievers <kay@vrfy.org> |
journal: align byte-buffer that gets cased to an object
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] |
b7def684941808600c344f0be7a2b9fcdda97e0f |
|
13-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
util: rename join() to strjoin()
This is to match strappend() and the other string related functions. |
cbdca8525b4f36297cb9e5cb090a9648763ed1bf |
|
13-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: beef up journal matches considerably
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. |
362a3f8122e070589a4d61f7752b990090c75432 |
|
13-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: check fields we search for more carefully |
c4aff78b2dffc1405396bff2458e479d0a19d93b |
|
13-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: fix interleaving of files with different time sources |
14a65d65a0c25ba4809b8d97f54ebf3e12eac84c |
|
11-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journalctl: add a marker to log output for reboots
With this we'll print a marker "----- Reboot -----" between two
subsequent lines with different boot IDs. |
a963990ff4ebc7908d3cf82bbd8cf34a42d57b7f |
|
11-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: rework directory enumeration/watch logic
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 |
e02d1cf72d115d1d61defdca5b551672d876c6bd |
|
10-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: introduce sd_journal_wait() to simplify writing synchronous clients |
e590af2666d2a958d355f9957e77ec967bb16011 |
|
03-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: fix iteration through journal if one file is corrupt |
38a6db16dc6f3ac6e6f497c90e51fb9904d785ba |
|
17-Jun-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: fix SD_JOURNAL_SYSTEM_ONLY flag |
089842938dd0f4080084044bb9a1a3b00137926a |
|
17-Jun-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: expose and make use of cutoff times of journal
This helps explaining when the log output of "systemctl status" is
incomplete because the logs got rotated since the service was started. |
d94117a93c0a8431de5c765f21a97f6eb32580da |
|
30-May-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: don't allow adding invalid matches to the context |
ab4979d202e12d60bb2e31dee32fd3e79a4453fd |
|
30-May-2012 |
Lennart Poettering <lennart@poettering.net> |
journalctl: for now complain if more than one match is provided since this is still broken |
9eb977db5b89b44f254ab40c1876a76b7d7ea2d0 |
|
08-May-2012 |
Kay Sievers <kay@vrfy.org> |
util: split-out path-util.[ch] |
5430f7f2bc7330f3088b894166bf3524a067e3d8 |
|
12-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
relicense to LGPLv2.1 (with exceptions)
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. |
6030831d5b85539a2a209b6d3a6f28b400207d78 |
|
27-Mar-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: properly handle if we interleave files with different boot ids
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. |
4fd052aede13eb3041277c54ac2f5dee6e6c29cf |
|
22-Mar-2012 |
Frederic Crozat <fcrozat@suse.com> |
add sparse support to detect endianness bug
le16/32/64_t type should be used when storing little-endian value
header to integrate with sparse from Josh Triplett <josh@joshtriplett.org> |
189f6d82eef8bccb733f735281bed4588dccbbd9 |
|
14-Mar-2012 |
Marti Raudsepp <marti@juffo.org> |
journal: Don't hold pointers to journal while remapping
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. |
ce3fd7e72a1b101002617bd410031e65d290f56f |
|
21-Jan-2012 |
Dan HorĂ¡k <dan@danny.cz> |
journal: systemd v38 fails to build on big-endians
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 |
19a2bd80c18d2845f0e37699c8d8df8c8cb4ed78 |
|
11-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
sd-journal: implement a number of non-implemented calls from the API for now |
df50185b43916926a72246ab3a80875eda7ad2a3 |
|
04-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: beef up journal output of systemctl and journalctl |
6f003b43043da7b57c0ebe15b86856c8248fea4a |
|
04-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journalctl: fix counting of -n parameter |
cf5eb6a110c39b36dd07457180b749f32488bcf5 |
|
04-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: fix reverse traversing of entries |
b4e5f9201706cbd0c83645175649119e87c2c91c |
|
04-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: add missing error check |
9c4e3f2624102c0b59cea78aabe4ed1f1d60064e |
|
04-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: don't mind too much if we can't find a monotonic timestamp |
4b067dc9d2b8836a2250315445686ae83993a9b7 |
|
04-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: add missing error check |
a5344d2c3b0f14e954ce1c0ef905c5b44bc5bf0a |
|
03-Jan-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: add _public_ to all sd-journal calls, and add parameter checks |
cf244689e9d1ab50082c9ddd0f3c4d1eb982badc |
|
29-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journald: flush /run to /var as soon as it becomes available |
24b51289e3f61c2483bb61231f8c16b65cf101be |
|
27-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: fix typo |
6ad1d1c30621280bfad3e63fcc1c7ceb7d8ffa98 |
|
22-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journald: enforce some syntax restrictions on field names sent from the client side |
72f597065c60fbfca501a8d8c29e9a11cb740946 |
|
21-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journalctl: add json, export, short and verbose output modes |
807e17f05e217b474af39503efb9503d81b12596 |
|
21-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: add inline compression support with XZ |
466ccd92e2f9ad712332012e1b3643a34b006a45 |
|
20-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: fix matches |
50f20cfdb0f127e415ab38c024d9ca7a3602f74b |
|
19-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: implement inotify-based live logging logic |
cab8ac60837b489b27a247990f741315c71cb389 |
|
17-Dec-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: enforce limits on open journal files |
de190aef08bb267b645205a747762df573b36834 |
|
08-Nov-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: implement multiple field matches |
8f9b6cd9eb049b00b1e9e669d0e35aa415dc8fb0 |
|
15-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: automaticall reset location when the set of matches changes |
8725d60ae4f7a8471aa8a0207fa105e335d069a6 |
|
15-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: implement seek to head/tail |
e892bd1797e99c8afaa6afdbe413fda78937c9c3 |
|
15-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: unify code for up and for down traversal |
de7b95cdc3228131498021c2fdcf6647004c3920 |
|
15-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: properly implement matching with multiple matches |
1cc101f1e59ca2f5e87dea48ac9ed98c6f077b3b |
|
14-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: if two entries match with everything but seqnums, they are still identical |
7210bfb3706f8cbb2b35403f916dace1824c516c |
|
14-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: move field index from file into journal object |
ae2cc8efc1659dcc6219dfcd07287288666aa303 |
|
14-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: when the same entry is in two files, skip over them in sync |
c2373f848dddcc1827cf715c5ef778dc8d475761 |
|
14-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: synchronize seqnum across files |
161e54f8719c4a11440d762276cbccbeb1736f8c |
|
14-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: fix field retrieval by name |
3fbf9cbb02690e40cd65802e777519f3f3c8d88a |
|
14-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: implement parallel file traversal |
0ac38b707212e9aa40e25d65ffbae648cc9116f5 |
|
13-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: implementation rotation |
cec736d21ff86c4ac81b4d306ddba2120333818c |
|
08-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: implement parallel traversal in client |
f4b4781191e8edfb5690e4447166e3ba7bcb48f5 |
|
07-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: split user logs into their own journal files |
260a2be45522f03ce8d8aca38e471d7b0882ff05 |
|
07-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: replace linked list by hashmap when merging files |
dad503169b2665ecfd3f5bfb3c936897e44ecca7 |
|
07-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: store XOR combination of entry data object hashes to identify hash lines |
87d2c1ff6a7375f03476767e6f59454bcc5cd04b |
|
07-Oct-2011 |
Lennart Poettering <lennart@poettering.net> |
journal: add preliminary incomplete implementation |