New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
multipathd/socket: start conditions not aligned with service unit, funky result #15
Comments
|
We can change this in multipath-tools, but it sounds like a systemd issue to me. The same would apply for any socket-activated unit. I can see no documented requirement that the conditions in socket units and their associated service units must be equal. |
|
PR at #16. Yes I think it's a bit of an unfortunate corner-case of systemd dependency graph, but I believe this comes from the deliberate decision of keeping unit settings as self-contained as possible (i.e. not infecting other units). |
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: opensvc#15 Signed-off-by: Luca BRUNO <luca.bruno@coreos.com> Reviewed-by: Martin Wilck <mwilck@suse.com>
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 345ccf5 Author: Luca BRUNO <luca.bruno@coreos.com> 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: opensvc/multipath-tools#15 Signed-off-by: Luca BRUNO <luca.bruno@coreos.com> Reviewed-by: Martin Wilck <mwilck@suse.com> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
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: opensvc#15 Signed-off-by: Luca BRUNO <luca.bruno@coreos.com> Reviewed-by: Martin Wilck <mwilck@suse.com>
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 345ccf5 Author: Luca BRUNO <luca.bruno@coreos.com> 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: opensvc/multipath-tools#15 Signed-off-by: Luca BRUNO <luca.bruno@coreos.com> Reviewed-by: Martin Wilck <mwilck@suse.com> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
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 345ccf5 Author: Luca BRUNO <luca.bruno@coreos.com> 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: opensvc/multipath-tools#15 Signed-off-by: Luca BRUNO <luca.bruno@coreos.com> Reviewed-by: Martin Wilck <mwilck@suse.com> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Right now the service unit
multipathd.servicehas several start conditions that the socket unitmultipathd.socketdoes not have. It would be good to align the set of conditions across the two units.The current diff is:
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 be marked as failed. The socket unit has not other possible outcome than ending up in a failed state, because it is indeed impossible to start the related service.As a real example, a random client command like
multipathd show daemonwill send themultipathd.socketunit into this failed state:This happens because the unit is trying really hard to activate the service unit and forward the client request to it. However,
multipathd.serviceis instead in the following state, where it will (correctly) never manage to actually start (despite all the retries):The text was updated successfully, but these errors were encountered: