[systemd-devel] Journal tests broken by commit 6573ef05a3cbe1 ("journal: keep per-JournalFile location info during iteration")

Filipe Brandenburger filbranden at google.com
Thu Dec 18 16:58:13 PST 2014

On Thu, Dec 18, 2014 at 4:39 PM, Filipe Brandenburger
<filbranden at google.com> wrote:
> Not sure what's the correct solution, maybe journal_file_save_location
> needs to happen only in real_journal_next() outside the
> ORDERED_HASHMAP_FOREACH loop? I'll try that and report if I find
> something that seems to solve this problem...

I tried this on top of commit 6573ef05a3cbe1 and it solves the problem.

After applying this patch:

diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
index 71b056c..a727e12 100644
--- a/src/journal/sd-journal.c
+++ b/src/journal/sd-journal.c
@@ -859,8 +859,6 @@
                         found = true;

                 if (found) {
-                        journal_file_save_location(f, direction, c, cp);
                         if (ret)
                                 *ret = c;
                         if (offset)
@@ -917,6 +915,8 @@
         if (!new_file)
                 return 0;

+        journal_file_save_location(new_file, direction, o, new_offset);
         r = journal_file_move_to_object(new_file, OBJECT_ENTRY,
new_offset, &o);
         if (r < 0)
                 return r;

Then "test-journal-stream" and "test-journal-interleaving" are working
again and I have a clean "make check" run.

But this does not work on trunk head, even after adapting it, the
tests start to fail in a different location, probably because of the
changes that come after it, so I think we'll need this and further
changes to it. I'll keep looking.


More information about the systemd-devel mailing list