Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 2008101

Summary: multipathd.socket is missing start conditions
Product: Red Hat Enterprise Linux 8 Reporter: Luca BRUNO <lucab>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: unspecified Docs Contact: Kristina Slaveykova <kslaveyk>
Priority: high    
Version: 8.5CC: abhide, agk, bmarzins, heinzm, jbrassow, kslaveyk, lilin, mgandhi, miabbott, msnitzer, prajnoha, zkabelac
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
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.
Story Points: ---
Clone Of:
: 2054875 2054876 2054877 (view as bug list) Environment:
Last Closed: 2022-05-10 15:21:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1976111, 2054875, 2054876, 2054877    

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