summaryrefslogtreecommitdiffstats
path: root/src/core/unit.h
diff options
context:
space:
mode:
authorAdrian Vovk <adrianvovk@gmail.com>2024-01-24 01:50:21 +0100
committerAdrian Vovk <adrianvovk@gmail.com>2024-01-30 17:18:16 +0100
commit4cb2e6af8dccfa35b1731c1f6772fdbc3b521113 (patch)
tree61ca4af7cd547410af13abad91b8b7343f183917 /src/core/unit.h
parentcore: Rework recursive freeze/thaw (diff)
downloadsystemd-4cb2e6af8dccfa35b1731c1f6772fdbc3b521113.tar.xz
systemd-4cb2e6af8dccfa35b1731c1f6772fdbc3b521113.zip
core: Fail to start/stop/reload unit if frozen
Previously, unit_{start,stop,reload} would call the low-level cgroup unfreeze function whenever a unit was started, stopped, or reloaded. It did so with no error checking. This call would ultimately recurse up the cgroup tree, and unfreeze all the parent cgroups of the unit, unless an error occurred (in which case I have no idea what would happen...) After the freeze/thaw rework in a previous commit, this can no longer work. If we recursively thaw the parent cgroups of the unit, there may be sibling units marked as PARENT_FROZEN which will no longer actually have frozen parents. Fixing this is a lot more complicated than simply disallowing start/stop/reload on a frozen unit Fixes https://github.com/systemd/systemd/issues/15849
Diffstat (limited to 'src/core/unit.h')
0 files changed, 0 insertions, 0 deletions