]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix(multipath): drop ExecStop= setting from service unit
authorLuca BRUNO <luca.bruno@coreos.com>
Thu, 23 Sep 2021 09:05:44 +0000 (09:05 +0000)
committerJóhann B. Guðmundsson <johannbg@gmail.com>
Thu, 23 Sep 2021 09:45:27 +0000 (09:45 +0000)
This removes the 'ExecStop=' field from `multipathd.service`.
Sometimes CI runs do encounter a failure related to this
service in initrd, which seems to be stemming from a socket
I/O race between the client and the server on shutdown.
It looks like the client (`multipathd shutdown`) can lose the race,
hit an I/O error, and cause the whole unit to fail (even if the server
managed to shutdown properly already).

Notably, the upstream unit does not have such stop command
as the daemon can already perform a graceful exit through
its signal handler.

As such, this commit partially re-aligns the two units,
trying to sidestep any of the existing races.

Refs:
 * https://github.com/coreos/fedora-coreos-tracker/issues/803
 * https://github.com/opensvc/multipath-tools/blob/0.8.7/multipathd/multipathd.service

modules.d/90multipath/multipathd.service

index b544de210546232d3837d6b916dad60ff63066f2..75c51305ea1aa20dcba58d3702748af9dd3d1d91 100644 (file)
@@ -14,11 +14,11 @@ ConditionKernelCommandLine=!rd_NO_MULTIPATH
 ConditionKernelCommandLine=!multipath=off
 
 [Service]
-Type=simple
+Type=notify
+NotifyAccess=main
 ExecStartPre=-/sbin/modprobe dm-multipath
 ExecStart=/sbin/multipathd -s -d
 ExecReload=/sbin/multipathd reconfigure
-ExecStop=/sbin/multipathd shutdown
 
 [Install]
 WantedBy=sysinit.target