Mailinglist Archive: opensuse-bugs (5243 mails)

< Previous Next >
[Bug 793954] raid1 array sometimes started with one of two disks at boot (again)

https://bugzilla.novell.com/show_bug.cgi?id=793954

https://bugzilla.novell.com/show_bug.cgi?id=793954#c31


Frederic Crozat <fcrozat@xxxxxxxx> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |ASSIGNED
CC| |fcrozat@xxxxxxxx
InfoProvider|fcrozat@xxxxxxxx |

--- Comment #31 from Frederic Crozat <fcrozat@xxxxxxxx> 2013-03-14 09:22:37 UTC
---
(In reply to comment #30)
Ahh.. I might have it at last

This bug is very similar to bug 772286 which we fixed by adding
# Should-Start: udev-trigger
to /etc/init.d/boot.md.

However it seems that udev-trigger isn't a service any more. Rather there is
a

systemd-udev-trigger.service

So maybe we just need to change "udev-trigger" in boot.md to
"systemd-udev-trigger". A bit of experimentation suggests that changing

# Should-Start: boot.scsidev boot.multipath udev-trigger

in /etc/init.d/boot.md to

# Should-Start: boot.scsidev boot.multipath systemd-udev-trigger

does seem to change the behaviour as I would expect. I don't have any
problems
with assembling arrays (as the problem is very sensitive to particular timing
of various events) so I cannot be certain that this fixes the problem. If
someone who does experience the problem could make this change and see if it
fixes the problem, that would be great.

Frederic: apart from wanting to let you know that I'm a bit grumpy about this
name change (not your fault exactly, but I wanted to complain to someone) I
notice that the /usr/lib/systemd/system/systemd-udev-trigger.service file
looks
wrong based on the man page (and a quick look at the code).
It contains:

ExecStart=/usr/bin/udevadm trigger --type=subsystems --action=add ;
/usr/bin/udevadm trigger --type=devices --action=add

However the body of "ExecStart" is not a shell script, but a command and some
args, so this passes ";" and "/usr/bin/udevadm" etc as extra args to
/usr/bin/udevadm.

Indeed. Splitting with ; works fine as long as the first binary doesn't take an
argument, otherwise, it is lost.


For "Type=oneshot" services you are allowed multiple ExecStart, so this should
be

ExecStart=/usr/bin/udevadm trigger --type=subsystems --action=add
ExecStart=/usr/bin/udevadm trigger --type=devices --action=add

Looks better indeed.

This change might also be needed for md arrays to be started properly but I'm
not 100% sure.

The upstream code has this bug. Would you follow it up with upstream, or
would
you rather that I did?

Feel free to send a patch upstream, I'll backport it once it is approved

--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

< Previous Next >