Ivan Kruglov d3c93d1678 core/swap: don't adopt a swap unit that isn't backed by anything
systemd creates one .swap unit per udev device link of every device listed
in /proc/swaps. When such a device link disappears while the swap itself
stays on -- e.g. because the link is not unique and udev repoints it at
another partition -- /proc/swaps doesn't change, so nothing re-examines the
unit and it stays active.

The next daemon-reload then orphans it: all units are dropped and rebuilt,
the enumeration from /proc/swaps no longer produces this name, and only the
deserialization brings the unit back, i.e. by name and without a fragment
on disk. swap_coldplug() restored its active state regardless, leaving a
unit that is active, unloadable and has no device, and that is never
garbage collected because active units aren't.

Refuse to adopt such a unit: if neither /proc/swaps nor a fragment vouches
for it, it describes a swap that doesn't exist anymore. Units that still
have a control process around are left alone, so that the process is
re-adopted and the timeout re-armed; those end up dead once it exits, as
they aren't backed by /proc/swaps either.

Issue: https://github.com/systemd/systemd/issues/43442
2026-08-25 06:05:37 -07:00
…
…
2026-08-16 03:01:28 +09:00
2026-08-25 14:45:16 +02:00
…
…
…
…
…
…
…
…
2026-08-23 14:10:22 +01:00
…
…
…
2026-08-24 11:56:27 +02:00

Systemd

System and Service Manager

OBS Packages Status
Semaphore CI 2.0 Build Status
Coverity Scan Status
OSS-Fuzz Status
CIFuzz
CII Best Practices
Fossies codespell report
Translation status
Coverage Status
Packaging status
OpenSSF Scorecard

Details

Most documentation is available on systemd's website.

Assorted, older, general information about systemd can be found in the systemd Wiki.

Information about build requirements is provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the Code Map for information about this repository's layout and content.

Please see the Hacking guide for information on how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel

Stable branches with backported patches are available in the stable repo.

We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack

Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release

S
Description
systemd patched fork
Readme Cite this repository
409 MiB
Languages
C 88.5%
Shell 5.7%
Python 4.6%
Meson 1.1%