Skip to contentSkip to conversation

package/systemd: journald should use volatile storage

PATCH New Nathaniel Roach 4 participants 6 messages Mar 1, 2015 – Jul 27, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/systemd: journald should use volatile storage

(By default)

This fixes https://bugs.busybox.net/show_bug.cgi?id=7892

Journald was attempting to write the logs to file before the underlying file system was up. A proposed solution was to bring /tmp up beforehand, but that did not always solve the issue.

In addition, since the logging directory was a tmpfs to begin with (/var/log -> /tmp) this should save some cycles.

---
 package/systemd/0004-fix-journald-on-tmpfs.patch | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 package/systemd/0004-fix-journald-on-tmpfs.patch
package/systemd/0004-fix-journald-on-tmpfs.patch new file +12 -0
new file mode 100644
index 0000000..c143e47
@@ -0,0 +1,12 @@
+--- systemd-218.orig/src/journal/journald.conf
++++ systemd-218/src/journal/journald.conf
+@@ -11,7 +11,7 @@
+ # See journald.conf(5) for details
+ 
+ [Journal]
+-#Storage=auto
++Storage=volatile
+ #Compress=yes
+ #Seal=yes
+ #SplitMode=uid
+
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 package/systemd: journald should use volatile storage

Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Nathaniel" == Nathaniel Roach <[email protected]> writes:

(By default)
This fixes https://bugs.busybox.net/show_bug.cgi?id=7892

Quoted 8 lines

Journald was attempting to write the logs to file before the underlying file system was up. A proposed solution was to bring /tmp up beforehand, but that did not always solve the issue.

In addition, since the logging directory was a tmpfs to begin with (/var/log -> /tmp) this should save some cycles.

Sorry, cannot reproduce this here. How do you see it exactly?

See bugtracker for details about my tests with
qemu_arm_versatile_defconfig.

Signature · 1 line
Bye, Peter Korsgaard
#2 lore raw

PATCH 1/1 package/systemd: journald should use volatile storage

Quoted 12 lines · Peter Korsgaard
Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Nathaniel" == Nathaniel Roach <[email protected]> writes:

(By default)
This fixes https://bugs.busybox.net/show_bug.cgi?id=7892

Journald was attempting to write the logs to file before the underlying file system was up. A proposed solution was to bring /tmp up beforehand, but that did not always solve the issue.

In addition, since the logging directory was a tmpfs to begin with (/var/log -> /tmp) this should save some cycles.

Quoted 7 lines
Quoted 1 line

Sorry, cannot reproduce this here. How do you see it exactly?

See bugtracker for details about my tests with
qemu_arm_versatile_defconfig.

I recently started having this issue on my SAMA5 system and this patch fixed it. It seems to be some sort of race condition; before this patch it would occur about 1 out of 3 boots. I've since booted a dozen times without an issue.

Mike

#3 lore raw

PATCH 1/1 package/systemd: journald should use volatile storage

Hi Nathaniel, Mike, all

Quoted 9 lines · Mike Williams
Quoted 8 lines · Peter Korsgaard
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Nathaniel" == Nathaniel Roach <[email protected]> writes:

(By default)
This fixes https://bugs.busybox.net/show_bug.cgi?id=7892

Journald was attempting to write the logs to file before the underlying file system was up. A proposed solution was to bring /tmp up beforehand, but that did not always solve the issue.

This should never happens, the service that starts journald depends on earlier services that mount the related filesystem. And even if they are not present, it should be able to deal with it (I have a setup where journald is started before the mountpoint where it should write is mounted and I never had any problem with it).

Quoted 8 lines
Quoted 8 lines
Quoted 5 lines

In addition, since the logging directory was a tmpfs to begin with (/var/log -> /tmp) this should save some cycles.

Sorry, cannot reproduce this here. How do you see it exactly?

Quoted 8 lines
Quoted 3 lines

See bugtracker for details about my tests with
qemu_arm_versatile_defconfig.

I recently started having this issue on my SAMA5 system and this patch fixed it. It seems to be some sort of race condition; before this patch it would occur about 1 out of 3 boots. I've since booted a dozen times without an issue.

I would really think the issue is elsewhere since you both have the same board and Peter could not reproduce and neither can I with 4 different platform (3 are ARM based but so is the SAMA5).

Quoted 6 lines

Mike
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#4 lore raw

PATCH 1/1 package/systemd: journald should use volatile storage

Quoted 47 lines · Maxime Hadjinlian

Hi Nathaniel, Mike, all

Quoted 1 line · Mike Williams

On Sun, Mar 1, 2015 at 3:44 PM, Peter Korsgaard <[email protected]>

Quoted 8 lines · wrote:
Quoted 8 lines
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Nathaniel" == Nathaniel Roach <[email protected]> writes:

(By default)
This fixes https://bugs.busybox.net/show_bug.cgi?id=7892

Journald was attempting to write the logs to file before the underlying file system was up. A proposed solution was to bring /tmp up beforehand, but that did not always solve the issue.

This should never happens, the service that starts journald depends on earlier services that mount the related filesystem. And even if they are not present, it should be able to deal with it (I have a setup where journald is started before the mountpoint where it should write is mounted and I never had any problem with it).

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

In addition, since the logging directory was a tmpfs to begin

with

Quoted 11 lines
Quoted 9 lines
Quoted 3 lines

(/var/log -> /tmp) this should save some cycles.

Sorry, cannot reproduce this here. How do you see it exactly?

See bugtracker for details about my tests with
qemu_arm_versatile_defconfig.

I recently started having this issue on my SAMA5 system and this

patch

Quoted 2 lines

fixed it. It seems to be some sort of race condition; before this patch it would occur about 1 out of 3 boots. I've since booted a

dozen

Quoted 1 line

times without an issue.

I would really think the issue is elsewhere since you both have the same board and Peter could not reproduce and neither can I with 4 different platform (3 are ARM based but so is the SAMA5).

Quoted 6 lines

Mike
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

As noted in the bug I filed for this (on mobile so I can't link), this issue is caused by having "rw" in the kernel parameters. This causes journald to think it has persistent storage (because it is set to auto) and thus tries to write to a file system that isn't up. -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150727/74db7902/attachment.html>

#5 lore raw

PATCH 1/1 package/systemd: journald should use volatile storage

Hi Nathaniel,

Quoted 69 lines · Nathaniel Roach
Quoted 60 lines · Maxime Hadjinlian

Hi Nathaniel, Mike, all

Quoted 7 lines · Mike Williams
Quoted 4 lines · Peter Korsgaard
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

"Nathaniel" == Nathaniel Roach <[email protected]> writes:

Quoted 7 lines
Quoted 7 lines
Quoted 7 lines

(By default)
This fixes https://bugs.busybox.net/show_bug.cgi?id=7892

Journald was attempting to write the logs to file before the underlying file system was up. A proposed solution was to bring /tmp up beforehand, but that did not always solve the issue.

This should never happens, the service that starts journald depends on earlier services that mount the related filesystem. And even if they are not
present, it should be able to deal with it (I have a setup where journald is started before the mountpoint where it should write is mounted and I never had any problem with it).

Quoted 17 lines
Quoted 6 lines
Quoted 4 lines

In addition, since the logging directory was a tmpfs to begin with (/var/log -> /tmp) this should save some cycles.

Quoted 8 lines
Quoted 1 line

Sorry, cannot reproduce this here. How do you see it exactly?

See bugtracker for
details about my tests with
qemu_arm_versatile_defconfig.

Quoted 4 lines

I recently started having this issue on my SAMA5 system and this patch fixed it. It seems to be some sort of race condition; before this patch it would occur about 1 out of 3 boots. I've since booted a dozen times without an issue.

I would really think the issue is elsewhere since you both have the same board and Peter could not reproduce and neither can I with 4 different platform (3 are ARM based but so is the SAMA5).

Quoted 8 lines

Mike
________________________________

buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Quoted 5 lines

________________________________

buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Quoted 4 lines

As noted in the bug I filed for this (on mobile so I can't link), this issue is caused by having "rw" in the kernel parameters. This causes journald to think it has persistent storage (because it is set to auto) and thus tries to write to a file system that isn't up.

Then the real issues beneath this, is to change /etc/fstab instead of doing hocus pocus in inittab, I'll cook up a patch regarding that which should fix your issue too.