Commit graph

344 commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek 0f99f74a14 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.
2014-08-27 21:05:28 -04:00
Zbigniew Jędrzejewski-Szmek fa1c4b518e Fix misuse of uint64_t as size_t
They have different size on 32 bit, so they are really not interchangable.
2014-08-03 23:53:49 -04:00
Zbigniew Jędrzejewski-Szmek b3306e9c3c journal: allow files with no data whatsoever
If a file was opened for writing, and then closed immediately without
actually writing any entries, on subsequent opening, it would be
considered "corrupted". This should be totally fine, and even in
read mode, an empty file can become non-empty later on.
2014-07-15 22:23:47 -04:00
Zbigniew Jędrzejewski-Szmek 3b1a55e110 Fix build without any compression enabled 2014-07-11 10:42:27 -04:00
Ronny Chevalier 92261977d8 fix #ifdef 2014-07-08 23:15:07 -04:00
Zbigniew Jędrzejewski-Szmek d89c8fdf48 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.
2014-07-06 19:06:03 -04:00
Kay Sievers d2edfae0f9 build-sys: use glibc's xattr support instead of requiring libattr 2014-05-28 17:36:40 +08:00
Lennart Poettering 03e334a1c7 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.
2014-03-18 19:31:34 +01:00
Zbigniew Jędrzejewski-Szmek fb099c8d2a journal: assume that next entry is after previous entry
With a corrupted file, we can get in a situation where two entries
in the entry array point to the same object. Then journal_file_next_entry
will find the first one using generic_arrray_bisect, and try to move to
the second one, but since the address is the same, generic_array_get will
return the first one. journal_file_next_entry ends up in an infinite loop.

https://bugzilla.redhat.com/show_bug.cgi?id=1047039
2014-03-05 00:17:27 -05:00
Zbigniew Jędrzejewski-Szmek bdd13f6be4 Remove dead lines in various places
As pointed-out by clang -Wunreachable-code.

No behaviour changes.
2014-02-24 19:24:14 -05:00
Daniel Mack 748db5928c journal: fix compiler warning in journal_file_append_data()
gcc (4.8.2, arm) does not understand that journal_file_append_field()
will always set 'fo' when it returns 0, so this warning is bogus.

Anyway, fix it by initialiting fo = NULL.
2014-02-20 17:24:36 +01:00
Greg KH 29804cc1e0 use memzero(foo, length); for all memset(foo, 0, length); calls
In trying to track down a stupid linker bug, I noticed a bunch of
memset() calls that should be using memzero() to make it more "obvious"
that the options are correct (i.e. 0 is not the length, but the data to
set).  So fix up all current calls to memset(foo, 0, length) to
memzero(foo, length).
2014-01-31 11:55:01 +01:00
Zbigniew Jędrzejewski-Szmek ae97089d49 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.
2014-01-11 10:07:22 -05:00
George McCollister af13a6b060 journal: Add missing byte order conversions
Convert entry_array.items[0] to host byte order prior to passing it to
chain_cache_put().

[zj: also use le64toh in journal-verify.c]

https://bugs.freedesktop.org/show_bug.cgi?id=73194
2014-01-05 09:36:32 -05:00
Lennart Poettering 9bf3b53533 shared: switch our hash table implementation over to SipHash
SipHash appears to be the new gold standard for hashing smaller strings
for hashtables these days, so let's make use of it.
2013-12-22 21:12:25 +01:00
Thomas Hindoe Paaboel Andersen 0d647f7f73 journal-file.c: remove redundant assignment of variable
we also do 'last_index = (uint64_t) -1;' at the end of the while
loop so there is no reason to also do it here.
2013-12-17 20:55:20 +01:00
Shawn Landden 08c6f819cb journal: fix against (theoretical) undefined behavior
While all the libc implementations I know return NULL when memchr's size
parameter is 0, without accessing any memory, passing NULL to memchr is
still invalid:

C11 7.24.1p2: Where an argument declared as "size_t n" specifies the length
of the array for a function, n can have the value zero on a call to that
function. Unless explicitly stated otherwise in the description of a
particular function in this subclause, pointer arguments on such a call
shall still have valid values, as described in 7.1.4. On such a call, a
function that locates a character finds no occurrence, a function that
compares two character sequences returns zero, and a function that copies
characters copies zero characters.

see http://llvm.org/bugs/show_bug.cgi?id=18247
2013-12-16 23:46:01 -05:00
Thomas Hindoe Paaboel Andersen 4faa70046c journal-file: protect against alloca(0) 2013-12-16 23:37:38 +01:00
Lennart Poettering eda4b58b50 journal: simplify pre-allocation logic
let's just do a single fallocate() as far as possible, and don't
distuingish between allocated space and file size.

This way we can save a syscall for each append, which makes quite some
benefits.
2013-11-27 01:50:36 +01:00
Lennart Poettering 248c78c79c journal: allow journal_file_copy_entry() to work on non-local files 2013-11-27 00:59:07 +01:00
Lennart Poettering e5462cd80e journal: fix iteration when we go backwards from the beginning of an array chain element 2013-11-27 00:58:39 +01:00
Lennart Poettering f268980d2c journal: optimize bisection logic a bit by caching the last position
This way we can do a quick restart limiting a bit how wildly we need to
jump around during the bisection process.
2013-11-26 20:37:53 +01:00
Lennart Poettering b8e891e699 journal: make table const 2013-11-26 18:46:03 +01:00
Lennart Poettering a676e66535 journal: when appending to journal file, allocate larger blocks at once 2013-11-26 18:46:03 +01:00
Lennart Poettering 9588bc3209 Remove dead code and unexport some calls
"make check-api-unused" informs us about code that is not used anymore
or that is exported but only used internally. Fix these all over the
place.
2013-11-08 18:12:45 +01:00
Zbigniew Jędrzejewski-Szmek 7ff7394d9e Never call qsort on potentially NULL arrays
This extends 62678ded 'efi: never call qsort on potentially
NULL arrays' to all other places where qsort is used and it
is not obvious that the count is non-zero.
2013-10-13 17:56:54 -04:00
Zbigniew Jędrzejewski-Szmek 57535f4703 journald: replace new+snprintf with asprintf 2013-10-09 22:32:08 -04:00
Lennart Poettering 8c92d4bbc7 journald: add missing error check 2013-10-02 19:45:12 +02:00
Zbigniew Jędrzejewski-Szmek 718fe4b1d5 journalctl: properly print headers of empty journals 2013-06-18 08:50:08 -04:00
Zbigniew Jędrzejewski-Szmek ed375bebf4 journalctl: print monotonic timestamp in --header 2013-06-10 10:10:07 -04:00
Zbigniew Jędrzejewski-Szmek 2765b7bb69 journalctl: print proper IDs with --header
The same buffer was used for two different IDs, messing up
the output.
2013-06-10 10:10:07 -04:00
Zbigniew Jędrzejewski-Szmek 507f22bd01 Use stdint.h macros instead of casts to print uint64_t values
Casts are visually heavy, and can obscure unwanted truncations.
2013-06-10 10:10:07 -04:00
Lennart Poettering 253f59dff9 journald: be more careful when we try to flush the runtime journal to disk and the disk is close to being full
Bump the minimal size of the journal so that we can be sure creating the
journal file will always succeed. Previously the minimum size was
smaller than a empty jounral file...
2013-05-07 01:10:05 +02:00
Zbigniew Jędrzejewski-Szmek 47838ab325 journal: as a µ-opt, use sizeof instead of strlen 2013-05-03 19:56:18 -04:00
Colin Guthrie 8621b1109b journal: Set the default keep free value to 15% (up from 5%)
As some SSDs are still seeing performance degredation when
reaching 85% usage the default value of 5% seems a little low.

Set this to 15% by default.
2013-05-03 17:46:44 +02:00
Zbigniew Jędrzejewski-Szmek 44a6b1b680 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.
2013-05-02 22:52:09 -04:00
Cristian Rodríguez 9607d9470e Always use our own MAX/MIN definitions
code in src/shared/macro.h only defined MAX/MIN in case
they were not defined previously. however the MAX/MIN
macros implemented in glibc are not of the "safe" kind but defined
as:

define MIN(a,b) (((a)<(b))?(a):(b))
define MAX(a,b) (((a)>(b))?(a):(b))

Avoid nasty side effects by using our own versions instead.

Also fix the warnings derived from this change.

[zj: - modify MAX3 macro to fix warning about _a shadowing _a,
     - do bootchart/svg.c too,
     - remove unused MIN3.]
2013-04-01 23:43:48 -04:00
Oleksii Shevchuk 26687bf8a9 journal: Add sync timer to journal server
Add option to force journal sync with fsync. Default timeout is 5min.
Interval configured via SyncIntervalSec option at journal.conf. Synced
journal files will be marked as OFFLINE.

Manual sync can be performed via sending SIGUSR1.
2013-03-25 17:51:06 +01:00
Lennart Poettering 93b73b064c 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.
2012-11-21 00:28:00 +01:00
Lennart Poettering 34741aa3e2 journal: special case the trivial cache chain cache entry 2012-10-26 20:25:36 +02:00
Lennart Poettering a4bcff5ba3 journal: introduce entry array chain cache
When traversing entry array chains for a bisection or for retrieving an
item by index we previously always started at the beginning of the
chain. Since we tend to look at the same chains repeatedly, let's cache
where we have been the last time, and maybe we can skip ahead with this
the next time.

This turns most bisections and index lookups from O(log(n)*log(n)) into
O(log(n)). More importantly however, we seek around on disk much less,
which is good to reduce buffer cache and seek times on rotational disks.
2012-10-26 03:24:03 +02:00
Lennart Poettering 0598fd4a95 journal: suggest rotation when fields are not indexed 2012-10-18 04:12:25 +02:00
Lennart Poettering 3c1668da62 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.
2012-10-18 03:35:18 +02:00
Lennart Poettering fb0951b02e journal: implement time-based rotation/vacuuming
This also enables time-based rotation (but not vacuuming) after 1month,
so that not more one month of journal is lost at a time per vacuuming.
2012-10-16 22:58:07 +02:00
Lennart Poettering 1f2da9ec51 journal: sort data items of entries by offset
This should slightly optimize disk access patterns on rotating disks for
simple readers.
2012-10-16 21:40:48 +02:00
Mirco Tischler f1889c9119 journal: set seal even for readonly journalfiles
journalctl needs to know wether the file has been sealed to
be able to do verification.
2012-09-24 14:41:38 +02:00
Lennart Poettering 0559d3a58a journal: don't allow journal_file_open() to be called with ret being NULL 2012-09-21 16:16:39 +02:00
Thomas Hindoe Paaboel Andersen c53158818d man: fix a bunch of typos in docs
https://bugs.freedesktop.org/show_bug.cgi?id=54501
2012-09-13 19:34:24 +02:00
Lennart Poettering b588975fb0 journal: never assert directly on data read from the journal 2012-09-13 17:10:46 +02:00
Lennart Poettering 5996c7c295 journald: don't reposition window if we don't have to 2012-09-13 17:06:04 +02:00
Lennart Poettering 49a32d43de journal: don't set seal flag if we don't have gcrypt built-in 2012-09-11 03:03:36 +02:00
Michael Olbrich 48b617399d journal: don't try to compress without XZ
otherwise the header contains the HEADER_INCOMPATIBLE_COMPRESSED
flag even though the data is not compressed and reading the journal
fails.
2012-09-11 03:01:14 +02:00
Lennart Poettering 7762e02b17 journald: detect invalid header pointers correctly 2012-09-10 11:58:00 +02:00
Lennart Poettering a1a03e3075 journal: add call to determine current journal file disk usage 2012-09-07 23:20:28 +02:00
Lennart Poettering 2b43f939a4 journald: avoid logging to kmsg in the normal paths 2012-09-06 00:32:51 -07:00
Lennart Poettering fcde238921 journal: be more careful when keeping around mmaps we still need 2012-08-21 15:39:34 +02:00
Lennart Poettering feb12d3ed2 journal: make libgcrypt dependency optional 2012-08-20 16:51:46 +02:00
Lennart Poettering 8088cbd3cf journal: use a macro to check for file header flags 2012-08-20 16:11:42 +02:00
Lennart Poettering f7fab8a5ae journal: fix tag ordering check 2012-08-20 15:59:33 +02:00
Lennart Poettering 84168d8068 mmap: resize arrays dynamically 2012-08-18 01:46:20 +02:00
Lennart Poettering fb9a24b6b1 journal: even more simple static object tests 2012-08-18 01:45:39 +02:00
Lennart Poettering c586dbf110 journal: fix verification without key 2012-08-18 00:38:57 +02:00
Lennart Poettering db11ac1ab5 journald: add additional simple static tests to verifier 2012-08-18 00:37:21 +02:00
Lennart Poettering a010801297 journal: be fine with opening rotated/corrupted journal files 2012-08-17 22:10:36 +02:00
Lennart Poettering 3223f44f23 journal: show new header fields in header dump 2012-08-17 02:29:20 +02:00
Lennart Poettering baed47c3c2 journal: rework terminology
Let's clean up our terminology a bit. New terminology:

FSS = Forward Secure Sealing
FSPRG = Forward Secure Pseudo-Random Generator

FSS is the combination of FSPRG and a HMAC.

Sealing = process of adding authentication tags to the journal.
Verification = process of checking authentication tags to the journal.

Sealing Key = The key used for adding authentication tags to the journal.
Verification Key = The key used for checking authentication tags of the journal.
Key pair = The pair of Sealing Key and Verification Key

Internally, the Sealing Key is the combination of the FSPRG State plus
change interval/start time.

Internally, the Verification Key is the combination of the FSPRG Seed
plus change interval/start time.
2012-08-17 00:45:18 +02:00
Lennart Poettering 14d10188de journal: add FSPRG journal authentication 2012-08-16 23:58:14 +02:00
Lennart Poettering b7c9ae91d1 journal: parse fsprg seed 2012-08-16 21:00:47 +02:00
Lennart Poettering 2dee23ebe0 journal: count number of entry arrays in header 2012-08-16 21:00:47 +02:00
Zbigniew Jędrzejewski-Szmek 2737027897 journal: rename 'mmap' to 'mmap_cache' to appease gcc
warning: declaration of 'mmap' shadows a global declaration [-Wshadow]
2012-08-16 19:44:51 +02:00
Lennart Poettering f59a5f6b87 journal: verify hashes only during actual verification, not all the time 2012-08-16 17:10:57 +02:00
Lennart Poettering 0284adc6a6 journal: split up journal-file.c 2012-08-16 17:10:57 +02:00
Lennart Poettering f65425cbc4 journal: add superficial structure verifier 2012-08-16 17:10:57 +02:00
Lennart Poettering beec008561 journal: implement basic journal file verification logic 2012-08-16 17:10:57 +02:00
Lennart Poettering 16e9f408fa 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.
2012-08-16 17:10:56 +02:00
Lennart Poettering d98cc1f29f journal: include tag object header in hmac 2012-08-13 21:52:58 +02:00
Lennart Poettering b0af6f41ea journal: add all objects we add to HMAC 2012-08-13 20:57:38 +02:00
Lennart Poettering 7560fffcd2 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.
2012-08-13 20:31:10 +02:00
Lennart Poettering 64825d3c58 fix a couple of issues found with llvm-analyze 2012-08-08 23:54:21 +02:00
Lennart Poettering a1a1898f71 journal: rotate busy files away when we try to write to them 2012-07-19 03:21:04 +02:00
Lennart Poettering 361f9cbc7e journal: when we suggest a rotation, explain why 2012-07-18 16:22:40 +02:00
Lennart Poettering dfabe643f3 journal: estimate data hash table size a bit larger by default 2012-07-18 16:22:25 +02:00
Lennart Poettering cd96b3b86a journal: actually set archived files to archived state 2012-07-17 00:59:03 +02:00
Lennart Poettering dc36ac6733 journalctl: decode more header files in --header 2012-07-17 00:59:03 +02:00
Lennart Poettering 4a92baf3fa 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.
2012-07-17 00:59:03 +02:00
Lennart Poettering 71fa6f006f journal: immediately rotate when the journal was previously not closed properly 2012-07-17 00:59:03 +02:00
Lennart Poettering dca6219e04 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.
2012-07-17 00:59:03 +02:00
Lennart Poettering 162566a4a1 journal: use tail/head timestamps from header for cutoff logic
We have them, they are faster to use them, so use them...
2012-07-16 19:28:05 +02:00
Lennart Poettering 74d29da524 journald: don't enforce monotonicity of realtime clocks when copying entries
After all the point of the realtime clock (in contrast to the monotonic
clock) is that it does not have to be strictly monotonic, hence don't
enforce this when flushing the journal from /run to /var.
2012-07-16 19:26:54 +02:00
Lennart Poettering cbdca8525b 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.
2012-07-13 00:32:32 +02:00
Lennart Poettering 91a31dde6e journal: fix seeking by realtime/seqnum 2012-07-13 00:32:32 +02:00
Lennart Poettering ecf68b1d38 journal: fix bad memory access 2012-07-13 00:32:32 +02:00
Lennart Poettering a536e2613f journal: fix bisection logic for first entry 2012-07-13 00:32:32 +02:00
Lennart Poettering 10b6f904cc journal: fix monotonic seeking 2012-06-17 00:03:13 +02:00
Lennart Poettering 089842938d 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.
2012-06-17 00:03:12 +02:00
Lennart Poettering 8db4213e7b journal: correct list link up on hash collisions 2012-06-17 00:03:12 +02:00
Lennart Poettering 8144056fa6 journal: add basic object definition for signatures 2012-06-17 00:03:12 +02:00
Lennart Poettering 23b0b2b264 journal: replace arena offset by header size 2012-06-17 00:03:11 +02:00
Michal Schmidt d384c7a874 journal-file: fix mmap leak
https://bugzilla.redhat.com/show_bug.cgi?id=831132
2012-06-12 16:46:34 +02:00
Guillermo Vidal fec2aa2f9e Fixed handling of posix_fallocate() returned value
According to the man pages of posix_fallocate, it returns zero on
success or an error number on failure; however,  errno is not set
on failure. If the kernel or a library other than glibc does not
support the function for example, EOPNOTSUPP will be returned and
the error will not be handled properly with original code.
2012-05-22 01:45:11 +02:00
Lennart Poettering 7ea07dcdda fix a couple of things found with the llvm static analyzer 2012-04-13 13:58:50 +02:00
Lennart Poettering 5430f7f2bc 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.
2012-04-12 00:24:39 +02:00
Lennart Poettering 1fa80181ae journal: decrease default mmap window size to allow a bigger number of journals to be traversed in parallel 2012-04-02 19:29:47 +02:00
Frederic Crozat 4fd052aede 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>
2012-03-22 01:09:37 +01:00
Lennart Poettering 0071d9f1db journal: react with immediate rotation to a couple of more errors 2012-03-21 23:40:51 +01:00
Lennart Poettering b47ffcfdfd man: document systemd-journald.conf(5) 2012-03-15 23:25:14 +01:00
Frederic Crozat ccdbaf9111 journal: only use uint8_t for state 2012-03-15 20:53:03 +01:00
Lennart Poettering e7bf07b3d4 journald: be a bit more verbose 2012-03-15 03:01:09 +01:00
Lennart Poettering a3a52c0fd0 journald: fix calculation of disk space 2012-03-15 03:01:09 +01:00
Lennart Poettering 15944db871 journald: copy metrics/compression state from template when rotating 2012-03-15 03:01:09 +01:00
Lennart Poettering 71100051c5 journald: increase max file size to 128MB 2012-03-15 02:57:39 +01:00
Lennart Poettering 5c70eab445 journal: vacuum corrupted files, too 2012-03-15 01:35:03 +01:00
Lennart Poettering 9447a7f1de journal: if we encounter a corrupted file, rotate and go on 2012-03-15 01:13:01 +01:00
Lennart Poettering 48496df65c journal: make sure to refresh window position and pointer after we linked up a data object 2012-03-06 02:42:32 +01:00
Frederic Crozat 7be3aa1732 journal: fix endianness errors 2012-03-05 14:47:18 +01:00
Dirk Eibach 8dc6b88fd2 systemd-journald: fix endianess bug 2012-02-29 14:06:33 +01:00
Lennart Poettering be19b7df6e journal: increase compression threshold for objects from 64 to 512
Apparently the perfomance price for compression is to steep to apply it
for all objects >= 64 and < 512 in size, as measured by Arjan Van De
Ven, hence increase the threshold to 512 which yields better results.
2012-01-31 20:38:53 +01:00
Lennart Poettering a7bc2c2ac8 util: introduce FORMAT_BYTES_MAX 2012-01-14 03:06:57 +01:00
Lennart Poettering b785c858c3 journal: fix more 32/64 bit issues 2012-01-11 22:44:43 +01:00
Lennart Poettering 7f120cc6a2 journald: don't assume size_t and uint64_t are the same 2012-01-11 21:24:02 +01:00
Lennart Poettering 1921a5cb3d journal: don't realign window twice 2012-01-11 03:55:24 +01:00
Lennart Poettering aaf53376aa journald: remove inner loop debug message 2012-01-07 04:10:21 +01:00
Lennart Poettering fd8ee359a0 journal: it's not a problem if the realtime jumps, hence don't ensure monotonicity of realtime for entries we write 2012-01-04 18:32:50 +01:00
Lennart Poettering a99c349d0d journal: when increasing window, make sure to use the increased window 2012-01-04 02:21:04 +01:00
Lennart Poettering 4bbdcdb301 journal: apply seek check before resizing window, and refresh stat data if necessary 2012-01-04 02:16:38 +01:00
Lennart Poettering b788cc23aa journal: add memory barrier before linking in newly created entries 2012-01-04 02:15:45 +01:00
Kay Sievers 6c8a39b883 journal: silence gcc warnings 2011-12-31 03:55:35 +01:00
Lennart Poettering babfc09177 journal: automatically deduce journal metrics from file system sizes 2011-12-31 02:31:54 +01:00
Lennart Poettering cf244689e9 journald: flush /run to /var as soon as it becomes available 2011-12-29 15:00:57 +01:00
Lennart Poettering 2a59ea54f1 journal: never mmap beyond file size 2011-12-28 01:53:06 +01:00
Lennart Poettering 85a131e8d8 journal: fix hash table lookup logic 2011-12-27 22:58:20 +01:00
Lennart Poettering 440ee3665e journal: properly handle first inline bisect array entry 2011-12-21 22:32:52 +01:00
Lennart Poettering 807e17f05e journal: add inline compression support with XZ 2011-12-21 02:40:59 +01:00
Lennart Poettering bc85bfee87 journal: fix space reservation limit enforcement 2011-12-20 02:38:36 +01:00
Lennart Poettering 466ccd92e2 journal: fix matches 2011-12-20 00:38:14 +01:00
Lennart Poettering 50f20cfdb0 journal: implement inotify-based live logging logic 2011-12-19 22:35:46 +01:00
Lennart Poettering de190aef08 journal: implement multiple field matches 2011-11-08 18:20:03 +01:00
Lennart Poettering e892bd1797 journal: unify code for up and for down traversal 2011-10-15 01:38:44 +02:00
Lennart Poettering de7b95cdc3 journal: properly implement matching with multiple matches 2011-10-15 01:13:37 +02:00
Lennart Poettering c2373f848d journal: synchronize seqnum across files 2011-10-14 05:12:58 +02:00
Lennart Poettering 3fbf9cbb02 journal: implement parallel file traversal 2011-10-14 04:44:50 +02:00
Lennart Poettering 0ac38b7072 journal: implementation rotation 2011-10-13 05:19:35 +02:00
Lennart Poettering 38ac38b298 journal: only fallocate() what we really need to avoid slowness on file systems which do not support fallocate natively 2011-10-12 04:41:27 +02:00
Lennart Poettering cec736d21f journal: implement parallel traversal in client 2011-10-08 02:21:05 +02:00