FS#47253 - [systemd] fails on multiple devices, freezing boot

Attached to Project: Arch Linux
Opened by Justin Kromlinger (hashworks) - Thursday, 03 December 2015, 19:37 GMT
Last edited by Dave Reisner (falconindy) - Sunday, 12 June 2016, 19:18 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Evangelos Foutras (foutrelis)
Dave Reisner (falconindy)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
After upgrading my systemd from 227-1 to 228-3 the system won't boot anymore, the only thing I get is:

systemd[1]: Assertion ´a´ failed at src/basic/path-util.c:393, function path_compare(). Aborting.
systemd[1]: Caught <ABRT>, dumped core as pid 284.
systemd[1]: Freezing execution.

https://github.com/systemd/systemd/blob/v228/src/basic/path-util.c#L393

Steps to reproduce:
1. Upgrade to 228-3
2. Reboot

I don't think this affects multiple users, however this occours on my two Archlinux PCs.
Downgrading to 227-1 is a workaround. The error message isn't that usefull, I'll provide any logs or configuration files you ask for.
This task depends upon

Closed by  Dave Reisner (falconindy)
Sunday, 12 June 2016, 19:18 GMT
Reason for closing:  Fixed
Additional comments about closing:  systemd v230
Comment by Dave Reisner (falconindy) - Friday, 04 December 2015, 03:01 GMT
Providing the generated core would be useful for determining a stack trace.
Comment by Evangelos Foutras (foutrelis) - Friday, 04 December 2015, 03:13 GMT
Posting the options passed to the kernel as well as /etc/fstab and other related files might help reproduce the issue.
Comment by Justin Kromlinger (hashworks) - Friday, 04 December 2015, 09:10 GMT
My /etc/fstac is empty, I'm using systemd mounts - I attached them. I also attached my /etc/mkinitcpio.conf.
My kernel options are default, besides "quiet cryptdevice=/dev/sda3:cryptroot resume=/swapfile".

Regarding core dumps, both devices haven't generated a core dump regarding systemd, which is weird (I looked into /var/lib/systemd/coredump and coredumpctl).
I'll try to generate one after work.

Comment by Justin Kromlinger (hashworks) - Friday, 25 December 2015, 17:25 GMT
I can now confirm that the above root.mount (-.mount) is causing the problem. Disabling it fixes the problem, the other mount options work fine though.

Could someone change the title so it states this?
Comment by Roman (Roman_123) - Friday, 11 March 2016, 18:22 GMT
I have systemd 229 on raspberry pi and can confirm a similar issue.
Creating a simple systemd service template: /etc/systemd/system/usbmount\@.service
[Unit]
BindTo=%i.device
After=%i.device

[Service]
Type=oneshot
TimeoutStartSec=0
Environment=DEVNAME=%I
ExecStart=/bin/sh -c "mkdir -p /media/%I ; mount %I /media/%I"
RemainAfterExit=yes

The UDEV starts a correspondingly systemd service by following rule if removable storage gets plugged in :

KERNEL!="sd[a-z][1-9]", GOTO="my_media_automount_end"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_LABEL}=="", GOTO="my_media_automount_end"
ACTION=="add", PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
LABEL="my_media_automount_end"

After device removal the systemd crashes (sometimes):
Mar 11 19:06:48 alarmpi systemd[227]: Assertion 'b' failed at src/basic/path-util.c:390, function path_compare(). Aborting.
Mar 11 19:06:48 alarmpi systemd[1]: Assertion 'b' failed at src/basic/path-util.c:390, function path_compare(). Aborting.

My removable storage has 2 partitions ntfs and exfat, both are fuse, thats why I need systemd services and cannot use "mount" form udev directly.
Comment by Justin Kromlinger (hashworks) - Saturday, 12 March 2016, 13:52 GMT

Loading...