Commit Graph
49526 Commits
Author SHA1 Message Date
Daan De Meyer 9619fdc102 Merge pull request #33157 from DaanDeMeyer/end
test: Run end.sh when running integration tests with mkosi
2024-06-02 21:04:56 +02:00
Daan De Meyer f9fc97824a resolved: Add missing nullable annotation for ifindex in ResolvedRecord 2024-06-02 19:15:21 +02:00
Daan De Meyer 6063978f75 hostnamed: Add missing VSockCID varlink introspection data 2024-06-02 16:38:20 +02:00
Daan De Meyer e77afcc699 pcrlock: Fix ReadEventLog() interface definition 2024-06-02 16:34:33 +02:00
Yu Watanabe 94e8dd54d0 test-async: also check if the directory is removed 2024-06-02 09:19:47 +09:00
Yu Watanabe b593d86d1b test-async: wait a while for fd to be closed
When this is run on slow environment, e.g. sanitizer is enabled,
then waiting for 1 second may not be enough.

Hopefully fixes #33150.
2024-06-02 09:10:06 +09:00
Yu Watanabe 49c27e4b13 network: drop period from the message title
We usually do not add full-stop for policy message title.

Follow-up for f90eb08627.
2024-06-01 15:10:44 +09:00
Daan De Meyer 7ce0104da8 cryptsetup-generator: Fix memory leak 2024-05-31 13:29:22 +02:00
Mike Yuan 3b23501a0d core/unit: refuse to spawn units under frozen cgroup
Currently, Unit.freezer_state is always initialized to
FREEZER_RUNNING. While realizing cgroups for frozen units
was disabled in 7923e9493c,
the commit only checked for freezer_state of the unit inself,
meaning that newly-loaded units might be started and the kernel
would hang pid1 when trying to spawn sd-executor into sub-cgroup.
This can be easily reproduced by the following:

```console
# systemd-run --slice=test.slice sleep infinity
# systemctl freeze test.slice
# systemd-run --slice=test.slice sleep infinity
```

Therefore, let's correctly initialize Unit.freezer_state
based on the parent slice.
2024-05-31 13:25:20 +02:00
Yu Watanabe 8b98d71df5 Merge pull request #33093 from YHNdnzj/freezer-util
bus-unit-util: rework UnitFreezer, explicitly thaw unit
2024-05-31 11:47:19 +09:00
Chris Packham 201148b08d basic: Add BCACHEFS magic
Import magic.h from Linux 6.9 to get the definition of
BCACHEFS_SUPER_MAGIC. Update filesystems-gperf.gperf to add knowledge of
bcachefs.

This fixes the following error building against a bleeding edge kernel.
```
src/basic/meson.build:234:8: ERROR: Problem encountered: Unknown filesystems defined in kernel headers:

Filesystem found in kernel header but not in filesystems-gperf.gperf: BCACHEFS_SUPER_MAGIC
```
2024-05-31 11:14:37 +09:00
Luca Boccassi 0630069f0b Merge pull request #33081 from keszybz/networkctl-formatting
Fix formatting of speeds in networkctl
2024-05-30 16:33:38 +02:00
Mike Yuan 1d617b35fe bus-unit-util: extend the bus call timeout for UnitFreezer
Might fix #33083

There's another report available on Mastodon:
https://m.otter.homes/@kaixin/112510783502516607
https://m.otter.homes/@kaixin/112510803023469180
2024-05-30 21:51:48 +08:00
Mike Yuan 61fbc58c46 sleep,home: clean up logs for session freezer a bit 2024-05-30 21:51:48 +08:00
Mike Yuan 12904d5387 bus-unit-util: rework UnitFreezer, explicitly thaw unit
Currently, we don't explicitly call unit_freezer_thaw(),
but rely on the destructor to thaw the frozen unit on
return. This has several problems though, one of them
being that we ignore the return value of ThawUnit(),
which is something we really shouldn't do here,
since such failure can easily leave the whole system
in unusable state. Moreover, the logging is kinda messy,
e.g. homed might log "Everything completed" yet immediately
followed by "Failed to thaw unit". Instead, we should log
consistently and at higher level, to make things more
debuggable.

Therefore, let's step away from the practice. Plus,
make UnitFreezer object heap-allocated, to match
with existing unit_freezer_new() and allow us to
use NULL to denote that the freezer is disabled.
2024-05-30 21:51:48 +08:00
Mike Yuan 759ac0dec3 core/dbus-unit: modernize bus_unit_method_freezer_generic a bit 2024-05-30 21:51:48 +08:00
Mike Yuan 47266ea224 core/dbus-manager: only allow Freeze/ThawUnit() if loaded 2024-05-30 21:51:47 +08:00
Lennart Poettering 43ad199802 homed: drop caches harder
echoing "2" is apparently not enough to erase inodes/dentrys from
memory, hence use "3", which seems to work.

Fixes: #32596
2024-05-30 14:50:40 +02:00
Daan De Meyer 381918edc9 Merge pull request #32866 from DaanDeMeyer/sanitizers
mkosi: Sanitizers
2024-05-30 14:49:13 +02:00
Daan De Meyer 0916532e4b Merge pull request #33090 from poettering/tpm12-efi-check
efi-api: tighten check for TPM2 systems
2024-05-30 13:32:41 +02:00
Daan De Meyer 5837d0dced Merge pull request #33084 from DaanDeMeyer/cgroup-log
cgroup-util: Don't try to open pidfd for pids from cgroup.threads
2024-05-30 12:49:37 +02:00
Daan De Meyer 51e26d2366 test-execute: Skip system call filter tests when sanitizers are used
System call filtering is incompatible with sanitizers so let's skip
these tests when we're built with sanitizers.
2024-05-30 12:47:45 +02:00
Daan De Meyer 4dc76eb770 test-execute: Skip test_exec_mount_apivfs() when running with sanitizers
The test fails when running under sanitizers due to missing sanitizer
libraries. For now, let's skip the test until we can make the necessary
changes to run it under sanitizers.
2024-05-30 12:47:45 +02:00
Zbigniew Jędrzejewski-Szmek 12080b1f7d shared/format-table: print BPS with part after point
Fixes https://github.com/systemd/systemd/issues/33076.
"2Gbps" → "2.5Gbps".
2024-05-30 11:38:30 +02:00
Zbigniew Jędrzejewski-Szmek 11226bf19b shared/format-table: do not print '.0'
This makes output a bit shorter and nicer. For us, shorter output is generally
better.

Also, drop unnecessary UINT64_C macros. The left operand is always uint64_t,
and C upcasting rules mean that it doesn't matter if the right operand is
narrower or signed, the operation is always done on the wider unsigned type.
2024-05-30 11:38:30 +02:00
Mike Yuan a6117106e4 blockdev-util: update comment for blockdev_partscan_enabled
Follow-up for aa6fe772e1

Also, the 'partscan' sysattr has been backported to v6.6.
2024-05-30 10:57:30 +02:00
Daan De Meyer 8783355fd9 cgroup-util: Don't try to open pidfd for pids from cgroup.threads
Opening pidfds for non thread group leaders only works from 6.9 onwards with PIDFD_THREAD. On
older kernels or without PIDFD_THREAD pidfd_open() fails with EINVAL. Since we might read non
thread group leader IDs from cgroup.threads, we introduce and set CGROUP_NO_PIDFD to avoid
trying open pidfd's for them and instead use the pid as is.
2024-05-30 10:30:36 +02:00
Lennart Poettering 5005522412 pcrlock: tweak error messages when we are not looking at a TPM2 event log
If we are looking at a TPM1.2 event log the first log record will not be
the "EfiSpecIdEvent" but something else. Let's improve the log messages
about this, and say explicitly that this is likely not a TPM2.0 event
log.
2024-05-30 10:13:39 +02:00
Lennart Poettering aeaac9a289 efi-api: check /sys/class/tpm/tpm0/tpm_version_major, too
If the ceck for the ACPI TPM2 table did not work we currently check if
the EFI TPM table exists to check if the firmware supports TPM2.
Specifically we check if
/sys/kernel/security/tpm0/binary_bios_measurements exists. But that's
not enough, since that also exists on TPM1.2 systems. Hence, let's also
check /sys/class/tpm/tpm0/tpm_version_major which should exist under
similar conditions and tells us the kernel's idea of the TPM version in
use.

I originally intended to read the signature of the
/sys/kernel/security/tpm0/binary_bios_measurements contents for this,
but this is not ideal since that file has tight access mode, and our TPM
availability check would thus not work anymore if invoked unpriv.

Follow-up for 4b33911581

Fixes: #33077
2024-05-30 10:13:39 +02:00
Luca Boccassi 214013be83 Merge pull request #33079 from poettering/watchdog-no-disarm
watchdog: don't disarm on shutdown
2024-05-29 22:18:08 +02:00
Daan De Meyer 9ac8450e7f basic: Add debug logging for pidref_set_pid() 2024-05-29 21:04:13 +02:00
Daan De Meyer 330ecca853 cgroup-util: Add debug logging for cg_kill_recursive() 2024-05-29 21:04:09 +02:00
Lennart Poettering d46aab1374 main: add comment explaining parameter to watchdog_close 2024-05-29 17:42:02 +02:00
Lennart Poettering 79645d7376 shutdown: explicitly close watchdog with disarm=false before we destroy watchdog resources
Otherwise we'll close the device disarming it as side-effect of
watchdog_free_device(), which is not intended. Hence, let's close the fd
first explicitly leaving it armed.

Fixes: #33075
2024-05-29 17:42:02 +02:00
Lennart Poettering bbd3832e6b watchdog: reset last ping timestamp when opening watchdog
When we open a watchdog fresh we have never pinged it, hence reset the
ping timestamp explicitly, so that it is not only reset the first time
we open the device, but all times.
2024-05-29 17:42:02 +02:00
Lennart Poettering e7f0053787 watchdog: normalize how we name watchdog related calls
Let's put the "watchdog" always as prefix in the name, and not as suffix
or the middle. Just for reasons of naming hygiene
2024-05-29 17:42:02 +02:00
Zbigniew Jędrzejewski-Szmek 134bdba832 test-format-table: add test for TABLE_BPS formatting 2024-05-29 17:36:01 +02:00
Lennart Poettering a25acf70fe exec-util: make sure to close all fds for invoked generators
We should really have set O_CLOEXEC for all our fds, but better be safe
than sorry.
2024-05-29 14:43:40 +02:00
Lennart Poettering 6b90b04d3a exec-util: use the stdio array of safe_fork_full() where appropriate 2024-05-29 14:43:40 +02:00
Lennart Poettering 8971313336 generator-setup: use RET_GATHER() 2024-05-29 11:52:40 +02:00
Luca Boccassi 8e495bf0b7 bpf: add helper to translate kernel error codes from libbpf
libbpf returns error codes from the kernel unmodified, and we don't understand
them so non-fatal ones are handled as hard errors.
Add a translation helper, and start by translating 524 to EOPNOTSUPP, which is
returned when nsresourced tries to use LSM BPF hooks that are not
implemented on a given arch (in this case, arm64 is misssing trampolines).

Fixes https://github.com/systemd/systemd/issues/32170
2024-05-29 08:29:47 +02:00
Luca Boccassi cbac9a3835 Merge pull request #33066 from YHNdnzj/logind-linger
logind-user: check linger file in user_wants_service_manager too
2024-05-28 22:41:57 +02:00
Christian Göttsche a424e4af6d tmpfiles: improve warning message and use O_NOCTTY
Mention in the warning message for a failed open on a to be removed file
why systemd-tmpfiles tried to open it.

Also open the file with the O_NOCTTY flag, since it should never become
the controlling terminal.
2024-05-28 21:58:30 +02:00
Mike Yuan e417415996 logind-user: check linger file in user_wants_service_manager too
Follow-up for 5099a50d43

Fixes #33005
2024-05-29 00:50:07 +08:00
Mike Yuan 194dba5ef5 logind-user: add missing assertion for user_check_linger_file
Also make the function take const User*
2024-05-29 00:50:07 +08:00
Luca Boccassi aa6fe772e1 Merge pull request #33057 from poettering/partscan-no-part
blockdev-util: for partition block devices partition scanning is always off
2024-05-28 16:39:15 +02:00
Luca Boccassi 78247be91d Merge pull request #33063 from keszybz/wiki-links
Update wiki links
2024-05-28 16:21:45 +02:00
Zbigniew Jędrzejewski-Szmek 95a248c56f Merge pull request #33008 from fbuihuu/optionally-link-ssh-dropins
Optionally link ssh dropins
2024-05-28 16:02:40 +02:00
Mike Yuan 1e1df05296 socket-util: use GREEDY_REALLOC_APPEND where appropriate
Also, previously GREEDY_REALLOC was used improperly,
causing the fds_array to be leaked when realloc() fails.
2024-05-28 15:42:14 +02:00
Lennart Poettering 7c1a1aa42c machined: downgrade warning if we cannot drop ref to systemd unit if disconnected from bus
if machined exits while a machine is still running, we'll issue the
UnrefUnit() call on the unit. This quite likely will fail if during
shutdown the bus connection is already down. But that's no reason to
warn at all, since the ref count will implicitly be dropped if our side
disappears from the bus. Hence, downgrade to LOG_DEBUG in case of
connection problems.
2024-05-28 15:05:11 +02:00