Bug 2008101 - multipathd.socket is missing start conditions
Summary: multipathd.socket is missing start conditions
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: device-mapper-multipath
Version: 8.5
Hardware: Unspecified
OS: Unspecified
high
unspecified
Target Milestone: rc
: ---
Assignee: Ben Marzinski
QA Contact: Lin Li
Kristina Slaveykova
URL:
Whiteboard:
Depends On:
Blocks: 1976111 2054875 2054876 2054877
TreeView+ depends on / blocked
 
Reported: 2021-09-27 09:41 UTC by Luca BRUNO
Modified: 2022-08-02 09:38 UTC (History)
12 users (show)

Fixed In Version: device-mapper-multipath-0.8.4-18.el8
Doc Type: Bug Fix
Doc Text:
.The `multipathd.socket` unit file no longer disables `multipathd` after too many startup attempts Previously, the starting conditions for `multipathd` in the `multipath.service` unit file differed from the triggering conditions in `multipathd.socket`. Consequently, the unit file repeatedly tried to start `multipathd` and failed. This resulted in disabling `multipathd` after too many failed attempts. With this fix, the starting conditions for `multipathd.socket` and `multipathd.service` have been set to the same values. As a result, the `multipathd.socket` unit file no longer attempts to start `multipathd` where the starting conditions for `multipathd.service` are not met.
Clone Of:
: 2054875 2054876 2054877 (view as bug list)
Environment:
Last Closed: 2022-05-10 15:21:50 UTC
Type: Bug
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github opensvc multipath-tools issues 15 0 None open multipathd/socket: start conditions not aligned with service unit, funky result 2021-09-27 09:41:33 UTC
Red Hat Issue Tracker RHELPLAN-98235 0 None None None 2021-09-27 09:47:05 UTC
Red Hat Product Errata RHBA-2022:2036 0 None None None 2022-05-10 15:22:19 UTC

Description Luca BRUNO 2021-09-27 09:41:34 UTC
Right now the socket unit 'multipathd.socket' is missing several start conditions that are present on the service unit 'multipathd.service'.

This means that if one of the conditions is not met (e.g. kargs contains 'nompath'), a client could trigger the socket unit to start, then enter a retry loop, and eventually the socket unit will be marked as failed.

This kind of failure has been observed on live systems (e.g. on RHEL 8 at https://bugzilla.redhat.com/show_bug.cgi?id=1976111) and reported upstream at https://github.com/opensvc/multipath-tools/issues/15.

This ticket is a request to:
 * cherry-pick the upstream fix at https://github.com/opensvc/multipath-tools/pull/16
 * fix the custom patch at '0013-RH-don-t-start-without-a-config-file.patch ' in order to mirror 'ConditionPathExists=/etc/multipath.conf' on 'multipathd.socket' too

Comment 6 Lin Li 2021-11-15 15:17:14 UTC
# cat 0077-multipathd.socket-add-missing-conditions-from-servic.patch
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Luca BRUNO <luca.bruno>
Date: Fri, 24 Sep 2021 09:34:01 +0000
Subject: [PATCH] multipathd.socket: add missing conditions from service unit

Upstream Status: https://github.com/openSUSE/multipath-tools.git
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2008101
Conflicts: Match the conditions with RHEL-8 multipathd.service unit

commit 345ccf564ce7d904641bd32baf4fc53c2283d95c
Author: Luca BRUNO <luca.bruno>
Date:   Fri Sep 24 09:34:01 2021 +0000

    multipathd.socket: add missing conditions from service unit

    This aligns 'multipathd' socket and service units, by adding the
    start conditions that are set on the service but not on the socket.
    It should help avoiding situations where the socket unit ends up
    marked as failed after hitting its retry-limit.

    Fixes: https://github.com/opensvc/multipath-tools/issues/15
    Signed-off-by: Luca BRUNO <luca.bruno>
    Reviewed-by: Martin Wilck <mwilck>

Signed-off-by: Benjamin Marzinski <bmarzins>
---
 multipathd/multipathd.socket | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/multipathd/multipathd.socket b/multipathd/multipathd.socket
index 0ed4a1f7..c62c0fc8 100644
--- a/multipathd/multipathd.socket
+++ b/multipathd/multipathd.socket
@@ -1,6 +1,9 @@
 [Unit]
 Description=multipathd control socket
 DefaultDependencies=no
+ConditionPathExists=/etc/multipath.conf          <-------------------------------------------------
+ConditionKernelCommandLine=!nompath              <-------------------------------------------------
+ConditionKernelCommandLine=!multipath=off        <-------------------------------------------------
 Before=sockets.target
 
 [Socket]

Comment 7 Lin Li 2021-11-15 15:19:12 UTC
multipath.socket service  have the same criteria as multipath.service from source code:

ConditionPathExists=/etc/multipath.conf
ConditionKernelCommandLine=!nompath
ConditionKernelCommandLine=!multipath=off

Comment 8 Micah Abbott 2022-01-12 19:22:09 UTC
Requesting z-stream backport to RHEL 8.2.z EUS

This problem was observed in OCP/RHCOS (BZ#1976111) and in order to deliver the fix to existing OCP customers, we would need this fix backported to 8.2.z EUS for inclusion in OCP/RHCOS 4.6

If this is not feasible, getting this fix backported to RHEL 8.4.z EUS would allow us to include the fix as part of OCP/RHCOS 4.7, 4.8. 4.9, 4.10

Comment 14 Ben Marzinski 2022-03-25 16:27:44 UTC
Multipathd is the program that is getting started. It creates and monitors multipath devices.
Mulitpathd.service is the Systemd unit file for starting the multipathd program.
Multipathd.socket is the Systemd unit file for triggering Multipathd.service when another program tries to communicate with the multipathd program.

Those are all the correct names. For clarity's sake you could change "the `multipath.socket`" to "the `multipathd.socket` unit file" or "the `multipathd.socket` Systemd unit file".

Comment 16 errata-xmlrpc 2022-05-10 15:21:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (device-mapper-multipath bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:2036


Note You need to log in before you can comment on or make changes to this bug.