1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-20 18:04:03 +03:00

77130 Commits

Author SHA1 Message Date
Ryan Wilson
63d4c4271c cgroup: Add ManagedOOMMemoryPressureDurationSec= override setting for units
This will allow units (scopes/slices/services) to override the default
systemd-oomd setting DefaultMemoryPressureDurationSec=.

The semantics of ManagedOOMMemoryPressureDurationSec= are:
- If >= 1 second, overrides DefaultMemoryPressureDurationSec= from oomd.conf
- If is empty, uses DefaultMemoryPressureDurationSec= from oomd.conf
- Ignored if ManagedOOMMemoryPressure= is not "kill"
- Disallowed if < 1 second

Note the corresponding dbus property is DefaultMemoryPressureDurationUSec
which is in microseconds. This is consistent with other time-based
dbus properties.
2024-10-16 20:12:38 -07:00
Ryan Wilson
c43ef2e883 oomd: Refactor DefaultMemoryPressureDurationSec= to use conf parser
Parsing DefaultMemoryPressureDurationSec= is currently split between
conf parser, main() and manager_start() methods. This commit centralizes
parsing and bounds checking logic within a single custom conf parser
function.
2024-10-16 20:05:48 -07:00
Yu Watanabe
4ce436fccf
Merge pull request #34797 from yuwata/test-mount
TEST-60: several cleanups and potential performance improvement
2024-10-17 07:23:36 +09:00
Yu Watanabe
73970cdcd1 TEST-60-MOUNT-RATELIMIT: disable journal ratelimiting
Otherwise, journal check in testcase_mount_ratelimit() may fail and we
need to wait 2 minutes.
2024-10-17 01:53:45 +09:00
Yu Watanabe
805d0eed0b TEST-60-MOUNT-RATEMINIT: split into small test cases
Then, use run_testcases().
2024-10-17 01:53:45 +09:00
Yu Watanabe
c5928a7684 TEST-60-MOUNT-RATELIMIT: wait for mount unit being started or stopped 2024-10-17 01:53:45 +09:00
Yu Watanabe
cadb074b9c
Merge pull request #34793 from yuwata/journalctl-copy-arguments
journalctl: copy arguments
2024-10-17 01:52:03 +09:00
Mike Yuan
102efcd312
Bump kernel recommended baseline to v5.4 2024-10-16 18:06:11 +02:00
Mike Yuan
7d3ae178fb
NEWS: rearrange incompatible changes, separate from Future Removals 2024-10-16 18:01:39 +02:00
Yu Watanabe
23615aca62 doc: fix typo
Follow-up for b3b7cf8b7c35df14c6eb4f79da1a241dc0aa8c7e.
2024-10-17 00:49:59 +09:00
Yu Watanabe
cd4b71b861 machine: fix typo
Follow-up for ad0d4f9a4c340f3fd5f0fcf646f7c762722737cd.
2024-10-17 00:48:43 +09:00
Yu Watanabe
6a6c0dab30 pidref: fix typo
Follow-up for de34ec188c4d4f682a337445aa7753259cd7f821.
2024-10-17 00:46:45 +09:00
Yu Watanabe
e776ab8e21 ukify: fix typo
Follow-up for 02eabaffe98c9a3b5dec1c4837968a4d3e2ff7db.
2024-10-17 00:44:41 +09:00
Yu Watanabe
8333badeb2
Merge pull request #34381 from DaanDeMeyer/extension-submounts
sysext: Deal with nested mounts properly
2024-10-17 00:11:17 +09:00
Luca Boccassi
5f911aca84 Fix maybe-uninitialized warnings with gcc 14.2
../src/resolve/resolved-bus.c: In function ‘call_link_method’:
../src/resolve/resolved-bus.c:1769:16: warning: ‘l’ may be used uninitialized [-Wmaybe-uninitialized]
 1769 |         return handler(message, l, error);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/resolve/resolved-bus.c:1755:15: note: ‘l’ was declared here
 1755 |         Link *l;
      |               ^
../src/resolve/resolved-bus.c: In function ‘bus_method_get_link’:
../src/resolve/resolved-bus.c:1828:13: warning: ‘l’ may be used uninitialized [-Wmaybe-uninitialized]
 1828 |         p = link_bus_path(l);
      |             ^~~~~~~~~~~~~~~~
../src/resolve/resolved-bus.c:1816:15: note: ‘l’ was declared here
 1816 |         Link *l;
      |               ^
2024-10-16 16:07:40 +02:00
xujing
cc2030f928 pid1: add env var to override default mount rate limit interval
Similar to 24a4542c. 24a4542c can only be set 1 in 1s at most,
sometimes we may need to set to something else(such as 1 in 2s).
So it's best to let the user decide.

This also allows users to solve #34690.
2024-10-16 16:07:26 +02:00
Yu Watanabe
ce2b92e8b0 journalctl: do not directly use optarg, but copy optarg before use
Otherwise, if the process forks child processes, then the arguments
cannot be used from them.
To avoid potential issues like the one fixed by
6d3012bab4ce4c1ed260598d05b4e9f2ea471658.
2024-10-16 23:06:42 +09:00
Luca Boccassi
6eb8d2bc3a
Merge pull request #34791 from poettering/live-mount-tweak
tweaks to live mount property logging
2024-10-16 14:43:14 +01:00
Daan De Meyer
ddbddebe0c sysext: Deal with nested mounts properly
Nested mounts should be carried over from host to overlayfs to overlayfs
(and back to host if unmerged). Otherwise you run into hard to debug
issues where merging extensions means you can't unmount those nested mounts
anymore as they are hidden by the overlayfs mount.

To fix this, before unmerging any previous extensions, let's move the nested
mounts from the hierarchy to the workspace, then set up the new hierachy, and
finally, just before moving the hierarchy into place, move the nested mounts
back into place.

Because there might be multiple nested mounts that consists of one or more
mounts stacked on top of each other, we make sure to move all stacked mounts
properly to the overlayfs. The kernel doesn't really provide a nice way to do
this, so we create a stack, pop off each mount onto the stack and then pop from
the stack again to the destination to re-establish the stacked mounts in the same
order in the destination.
2024-10-16 14:18:24 +01:00
Daan De Meyer
5e81ce42e7 sysext: Run unmerge in a subprocess
Preparation for later commit where we need a private mount namespace
for unmerge.
2024-10-16 14:18:24 +01:00
Yu Watanabe
d0ad4e88d4 journalctl: erase verify key before free
Even optarg is erased, copied string was not erased.
Let's erase the copied key for safety.
2024-10-16 20:53:57 +09:00
Daan De Meyer
04f0a17e92 mount-util: Make get_submounts() a public function 2024-10-16 11:37:57 +01:00
Yu Watanabe
c256fb06d7
Merge pull request #34756 from yuwata/test-oomd-cleanups
TEST-55-OOMD: several cleanups
2024-10-16 18:39:33 +09:00
Yu Watanabe
7693e8d9d0 test: fix TOCTOU in test-json
Follow-up for 60ae3b86fb52d545b279e3927d2214462385e734.
Fixes CID#1563782.
2024-10-16 10:06:57 +01:00
Lennart Poettering
d24d546dd1 core: move debug logging from _can_live_mount() functions to caller
Let's debug log the returned dbus error where we want the logging, but
don't log it, where we don't.

This removes the noisy logging from the property handler for the
CanLiveMount property, but keeps it in place for the MountImage() method
call where we want it.

Alternative to #34175

Follow-up for 5162829ec87df20c7af763bdf274735bf9e53552 and 1cafbecabecc619b4e147abd9925282d0ff323bd
2024-10-16 10:50:15 +02:00
Luca Boccassi
dc851222cd core: one more Mount -> LiveMount rename
Missed by earlier search-and-replace

Follow-up for 5162829ec87df20c7af763bdf274735bf9e53552
2024-10-16 10:49:41 +02:00
Frantisek Sumsal
8bea6780f2
Merge pull request #34742 from yuwata/test-storage
test: fix multipath test in TEST-64-STORAGE
2024-10-16 10:21:22 +02:00
Yu Watanabe
a6092b532e TEST-55-OOMD: check slice property before stressing slice 2024-10-16 15:20:15 +09:00
Yu Watanabe
98a0bb8a64 TEST-55-OOMD: stop test units when unnecessary
Then, sleep becomes not necessary anymore. This greatly improve performance.
2024-10-16 15:18:41 +09:00
Yu Watanabe
665882f8f3 TEST-55-OOMD: check slice more in detail
system and user slice has same name, hence we need to check full path.
2024-10-16 15:17:31 +09:00
Yu Watanabe
6bba058076 TEST-55-OOMD: split into small testcases
Then, we can run each small test cases separately.
2024-10-16 15:17:11 +09:00
Yu Watanabe
23fb9b63cd TEST-55-OOMD: check global config earlier
'Default Memory Pressure Duration' field in oomctl, which can be configured
with DefaultMemoryPressureDurationSec= in oomd.conf, is a global config.
Let's check it earlier.

This also drops unnecessary cleanup at the beginning.
2024-10-16 15:16:16 +09:00
Yu Watanabe
1473836a1e TEST-55-OOMD: set ManagedOOMMemoryPressure= and friends in a drop-in config
Fedora and friends has a drop-in config for the settings in
/usr/lib/systemd/user/slice.d/ . Hence, settings in the main .slice may be
overridden. Let's set below in a drop-in with higher decimal prefix.

Also, rename override.conf -> 99-managed-oom-preference.conf for the same reason.
2024-10-16 14:49:56 +09:00
Yu Watanabe
5f3cfb9d5e TEST-19-CGROUP: add test cases for IPAddressAllow=/IPAddressDeny= 2024-10-16 14:32:13 +09:00
Yu Watanabe
77bbd9f1bd core/cgroup: fix IPAddressAllow=/IPAddressDeny= set through DBus
Fixes a regression caused by 84ebe6f01381c21b88e37e856956c9c9ee6781d6 (v250).
Fixes #34773.
2024-10-16 14:31:49 +09:00
Michael Ferrari
28dbee46d5 gpt-auto: remove directory check for ESP mount
Ensure that we always attempt to mount the `ESP` partition to `/boot`
when there is no `XBOOTLDR` partition.

Fixes an issue when booting without a `XBOOTLDR` partition and an empty
root partition, since it would mount the `ESP` partition to `/efi/`
unconditionally causing boot entries to not be under `/boot/` as
recommended by the Boot Loader Specification.
2024-10-16 10:09:38 +09:00
Yu Watanabe
548360817e
Merge pull request #34482 from bgurney-rh/alt-nvme-multins-symlink-fix
Pin obsolete NVMe symlinks to namespace 1
2024-10-16 10:05:46 +09:00
Yu Watanabe
770980bc13
Merge pull request #34781 from poettering/write-string-rename-full
fileio: write_string_file() naming clean-ups
2024-10-16 06:18:57 +09:00
Yu Watanabe
529fbd25a7
Merge pull request #34719 from poettering/pidref-remote
pidref: add explicit concept of "remote" PidRef
2024-10-16 06:15:26 +09:00
Lennart Poettering
92881e7a4f json-util: initialize "remote" flag for PidRef when parsing JSON pidref serializations
Now that we have a way to recognize "remoteness" of a PidRef, let's make
sure when we decode a JSON pidref we initialize things that way.
2024-10-15 18:26:05 +02:00
Lennart Poettering
7e3e540b88 pidref: add explicit concept of "remote" PidRef
This PidRef just track some data, but cannot be used for any active
operation.

Background: for https://github.com/systemd/systemd/pull/34703 it makes
sense to track explicitly if some PidRef is not a local one, so that we
never attempt to for example "kill a remote process" and thus
acccidentally hit the wrong process (i.e. a local one by the same PID).
2024-10-15 18:26:05 +02:00
Lennart Poettering
518632ce1e debug-generator: create prefix dir of generate unit file
Strictly speaking, it's more correct if we create the prefix path before
writing our unit file.
2024-10-15 18:21:04 +02:00
Lennart Poettering
5048a6bd65 dropin: use WRITE_STRING_FILE_MKDIR_0755 to create drop-in prefix path 2024-10-15 18:21:00 +02:00
Lennart Poettering
db21bf5ae9 shared: modernize drop_in_file() a bit
Make the return parameters optional, since we don't actually need them
in all cases (see later commits).
2024-10-15 18:20:57 +02:00
Lennart Poettering
8a0adc973a fileio: clean up write_string_file() naming
let's rename the "_ts" flavour of these calls "_full" instead, exposing
the full functionality. And then keep two more minimal versions around:
one "_at" (which has the ts parameter suppressed, but keeps the dir_fd
one). And one without suffix (which supresses both).

Do the same for the label versions of these calls.
2024-10-15 18:20:27 +02:00
Luca Boccassi
e1efa9d804 core: do not fail if ignorable img.v/ vpick dir is missing
Do not fail if the directory is missing entirely, other than just empty

Follow-up for 00f546e25e8
Follow-up for 5e79dd96a88
Follow-up for 622efc544dc
2024-10-15 18:17:25 +02:00
Lennart Poettering
c83818edd1
Merge pull request #34778 from poettering/userdb-error-tweak
userdb: handle userbd replies indicating invalid user/group names like record not found
2024-10-15 18:17:06 +02:00
Bryan Gurney
21ba71f89b TEST-64-UDEV-STORAGE: test for absence of obsolete NVMe symlink
Signed-off-by: Bryan Gurney <bgurney@redhat.com>
2024-10-15 10:22:07 -04:00
Lennart Poettering
34599ddfc6
Merge pull request #34747 from yuwata/busctl-json-fd
busctl: dump passed fd info
2024-10-15 14:38:18 +02:00
Lennart Poettering
69cc4ee134 userdb: return ESRCH if userdb service refuses a user/group name as invalid
if a userdb service refuse a user/group name as invalid, let's turn this
into ESRCH client-side following that there definitely is no user/group
record for a completely invalid user/group name.

Replaces: #34558
2024-10-15 14:15:21 +02:00