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
Regression introduced in v253 that prevents some units to be restarted #26839
Comments
Regression introduced by commit 017a7ba, hence /Cc @YHNdnzj @poettering |
Also note that the test case provided in #24068, where
|
When a restart is being propagated as stop, the unit that issues propagation could also depend on the unit to be stopped. This results in a job type conflict and failure to pull in the dependent unit. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839 (bug introduced in 017a7ba)
When a restart is being propagated as stop, the unit that issues propagation could also depend on the unit to be stopped. This results in a job type conflict and failure to pull in the dependent unit. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839 (bug introduced in 017a7ba)
When a restart is being propagated as stop, the unit that issues propagation could also depend on the unit to be stopped. This results in a job type conflict and failure to pull in the dependent unit. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839 (bug introduced in 017a7ba)
When a restart is being propagated as stop, the unit that issues propagation could also depend on the unit to be stopped. This results in a job type conflict and failure to pull in the dependent unit. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839 (bug introduced in 017a7ba)
https://build.opensuse.org/request/show/1072270 by user fbui + dimstar_suse - Add 5002-systemctl-explicitly-cast-the-constants-to-uint64_t.patch (bsc#1209305) Added temporarily until it's merged in either the stable v253 branch or in the SUSE git repo. - Add 5001-Revert-core-propagate-stop-too-if-restart-is-issued.patch until systemd/systemd#26839 is fixed properly. - testsuite: mtools is required by TEST-58-REPART - testsuite: swtpm and tpm2.0-tools are needed by TEST-70-TPM2 - Add 5000-core-manager-run-generators-directly-when-we-are-in-.patch, a temporary workaround until dracutdevs/dracut#2211 is fixed in dracut. - Upgrade to v253.1 (commit 6c327d74aa0d350482e82a247d7018559699798d) See https://github.com/openSUSE/systemd/blob/SUSE/v253/NEWS for details. * Rebased 0001-conf-parser-introduce-e
Replaces: systemd#26844 Fixes: systemd#24068 Fixes: systemd#26839
When a restart is being propagated as stop, the unit that issues propagation could also depend on the unit to be stopped. This results in a job type conflict and failure to pull in the dependent unit. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839 (bug introduced in 017a7ba)
…re)start job Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839
…re)start job Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. After this commit, we store the units that has a (re)start job in a set. If they shall get stop propagation, a restart job is added instead. Fixes systemd#26839
hmpf, honestly the unit in question is kinda stupid. it encodes a contradiction because it pulls the rug below itself while it is already going down. i am not convinced this really is an issue. And the failure on restart is to be expected then: the Requires= encodes the outcome after a restart is that the depending unit is up, and the PropagatesStopTo= encodes the outcome is down. So what now? the engine correctly detects this and complains. I am kinda tempted to just say, "don't do that" and move on. I mean, i understand that older versions of systemd didn't refuse such transactions, but i'd claim thta was a bug we have fixed, and it doesn't constitute a bug we now intrdouced. |
Well this is still what auditd.service does and I'm not sure you can blame them to assume that My guess is that it's been done this way to automatically restart |
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
Follow-up for 017a7ba Before this commit, when a unit that is restarting propagates stop to other units, it can also depend on them, which results in job type conflict and thus failure to pull in the dependencies. So, let's introduce a new dependency atom UNIT_ATOM_PROPAGATE_STOP_GRACEFUL, and use it for PropagatesStopTo=. It will enqueue a restart job if there's already a start job, which meets the ultimate goal and avoids job type conflict. Fixes systemd#26839
systemd version the issue has been seen with
253
Used distribution
openSUSE Factory
Linux kernel version used
irrelevant
CPU architectures issue was seen on
None
Component
systemd
Expected behaviour you didn't see
Be able to restart
auditd.service
properly.Unexpected behaviour you saw
Steps to reproduce the problem
Note that this test case has been taken from #24068 except that
Wants=bar.service
was changed intoRequires=bar.service
.Additional program output to the terminal or log subsystem illustrating the issue
No response
The text was updated successfully, but these errors were encountered: