Commit Graph
63028 Commits
Author SHA1 Message Date
Lennart Poettering 5f64d2bf33 socket-util: fix socket_get_family()
Function didn't actually return anything useful. Quite a shame.
2023-03-10 09:36:18 +01:00
Lennart Poettering 862481ece0 Merge pull request #26693 from poettering/udev-loop-links
udev: add /dev/loop/by-inode/… + /dev/loop/by-ref/… loopback block device symlinks
2023-03-10 09:34:31 +01:00
Lennart Poettering 96c96fb250 Merge pull request #26704 from poettering/mnt-nosymlinks
Set MS_NOSYMFOLLOW for ESP + XBOOTLDR and many mount option clean-ups
2023-03-10 09:34:04 +01:00
Daan De Meyer 4b8ce14f6c repart: Add support for reading mkfs options from environment 2023-03-10 09:33:39 +01:00
Lennart Poettering e0e818bb14 Merge pull request #26741 from poettering/acquire-fd-fixes
trivial fixes to acquire_data_fd()
2023-03-10 09:33:20 +01:00
Ronan Pigott 0b40688d18 load-fragment: add user credential specifiers to user.conf
This enables the ManagerEnvironment= settings in the user's user.conf to
reference some user data like $HOME for the purpose of setting
environment variables derived from these values.
2023-03-10 00:05:37 +00:00
Luca Boccassi 28f3cbbded Merge pull request #26734 from mrc0mmand/test-followups
Assorted test tweaks
2023-03-10 00:03:48 +00:00
Luca Boccassi d56391b40f Merge pull request #26731 from yuwata/mempressure-follow-ups
Mempressure follow ups
2023-03-09 22:35:29 +00:00
Lennart Poettering 274a3b0075 data-fd-util: use fd_reopen() a bit more 2023-03-09 22:56:53 +01:00
Lennart Poettering 92c6f73cc5 fd-util: move ACQUIRE_NO_XYZ flags to the header the function using them is in
Follow-up for: b25a930f0e
2023-03-09 22:56:30 +01:00
Lennart Poettering a617007417 mempress: change default PSI window duration to 2s
This changes the PSI window duration we default to for watching memory
pressure events from 1s to 2s. This is because apparently the kernel
will soon disallow window durations other than 2s for unprivileged
processes.

Hence, we'll bump the threshold from 100m to 200ms, and the window from
1s to 2s.
2023-03-09 22:31:20 +01:00
Lennart Poettering aa03f49917 update TODO 2023-03-09 22:29:11 +01:00
Lennart Poettering f5e46b9e09 test: test new systemd-dissect --attach/--detach/--loop-ref= and /dev/loop/* symlinks
Let's test that everything we just added works in combination.
2023-03-09 22:29:11 +01:00
Lennart Poettering e1349c045e mountpoint-util: add comment explaining why fstype_can_discard() can't use mount_option_supported() 2023-03-09 21:56:42 +01:00
Lennart Poettering 6eda6f7e51 mountpoint-util: add new fstype_can_umask() helper 2023-03-09 21:56:42 +01:00
Lennart Poettering 034ebc47a2 mountpoint-util: move 'norecovery' detection into its own helper call
And let's also ask the kernel explicitly for support.
2023-03-09 21:56:42 +01:00
Lennart Poettering 4e6d305ae2 mountpoint-util: use mount_option_supported() to detect if 'discard' is support for an fs 2023-03-09 21:56:42 +01:00
Lennart Poettering 117e703447 mountpoint-util: generalize mount_option_supported() 2023-03-09 21:56:42 +01:00
Lennart Poettering de1461ac5e gpt-auto-generator: port to partition_pick_mount_options() too
This way we'll have the same mount options in place if we boot via the
gpt generator, or if we mount a DDI locally.

Note that this will also enable MS_NOSYMFOLLOW on ESP and XBOOTLDR now,
if booted via gpt-auto-generator.
2023-03-09 21:56:42 +01:00
Lennart Poettering 254e392e73 dissect-image: set MS_NOSYMFOLLOW for ESP/XBOOTLDR
When we mount a DDI, let's set MS_NOSYMFOLLOW for ESP/XBOOTLDR. They are
generally untrusted territory, (i.e. outside of
encryption/authentication via dm-crypt/dm-verity). Moreover they are
generally FAT, where symlinks don't exist anyway. Let's hence disable
symlinks for them.

This slightly refactors how we put together mount options for mounts,
splitting this out into a new helper call
dissected_partition_pick_options(), which we should be able to reuse
later in gpt-auto-generator, to ensure mounts via loopback as DDI and
those on bare metal get the same options.
2023-03-09 21:56:42 +01:00
Lennart Poettering 5ac52d1f7b udev: add /dev/loop/ symlinks
This adds symlinks that allow accessing loopback block devices via stable
names that reference their backing block devices, make the unpredictable
naming of loopback devices less of an issue.

Example:

1. Create a loopback block device for a file $F

   losetup --find $F

2. Reference the backing block device via its inode:

   L="$(stat -c '/dev/loop/by-inode/%Hd:%Ld-%i' $F)"
   fdisk $L

In the above the loop device name (which might be /dev/loop47 or any
other name) is not used at all.
2023-03-09 16:41:26 +01:00
Lennart Poettering 6f5ef9e4c7 dissect: shorten code a bit 2023-03-09 16:41:26 +01:00
Lennart Poettering 236d1fa210 dissect: allow setting "lo_file_name" field of loopback block devices
When attaching a loopback file this allows us to set an explicit name
for it. This is useful since it allows a caller to pre-select a string
that is directly attached to the loopback file. Via udev rules we'l
later make the device accessible through this name.

Note that "lo_file_name" is supposed to carry a file name of the backing
file, but the kernel actually does not care or enforce any of that, it
just stores the filename and returns it later. This makes it so useful,
as userspace has total control of that field.

"lo_file_name" should not be confused with the sysattr
"loop/backing_file" which is actually maintained by the kernel itself,
and always shows the file to the backing inode without userspace having
direct control over the returned string. Because the sysattr is
generated by the kernel it is subject to file system namespacing and
everything, while "lo_file_name" is not, it's really just a string
passed through the kernel.
2023-03-09 16:41:23 +01:00
Lennart Poettering 07d6072e0e dissect: add commands for attaching/detaching loopback devices
Sometimes it is useful attaching DDIs without mounting them. We could
use "losetup" for that, but doing this in systemd-dissect has various
benefits:

1. we superficially validate the DDI first
2. we set the sector size depending on what we determine
3. we synchronously create the per-partition block devices
2023-03-09 16:40:55 +01:00
Lennart Poettering 999ac3e2b0 loop-util: add API for selecting "lo_file_name" field for a loopback device 2023-03-09 16:40:55 +01:00
Lennart Poettering d2430d5097 loop-util: add call for setting the autoclear flag at arbitrary times 2023-03-09 16:40:55 +01:00
Lennart Poettering 4d2a9e3ea6 loop-util: keep track of inode/devnum of backing file 2023-03-09 16:40:55 +01:00
Lennart Poettering be86e98350 udev-builtin-blkid: pick up info of backing file
This adds support for retrieving info about the inode backing a loopback
file to udev-builtin-blkid. It will pick up the inode number and device
of the backing inode, as well as the lo_file_name[] array that the
loopback device maintains.

A later patch uses this information to create block device symlinks in
/dev/ that allow refering block devices by their backing inodes. This is
useful when separate tools set up a loopback device from those which
ultimately shall mount them, and there shall be a stable reference be
passed along. For example, we can add a new kernel option setuploop= or
so which allows setting up a block device via a generator, and still
have a way to safely reference later.

And yes, this doesn't directly have anything to do with the probing
libblkid does, but it's close enough, and we have the device open anyway
here, so the additional ioctl() here should not hurt.
2023-03-09 16:40:55 +01:00
Lennart Poettering 85737dd378 udev: add new udev_builtin_add_propertyf() helper 2023-03-09 16:40:55 +01:00
Lennart Poettering c571dee74b dissect: add new helper dissected_partition_fstype()
Initially we only have one user, but following patches will add more.
2023-03-09 16:15:26 +01:00
Lennart Poettering 7d3b157b77 mountpoint-util: add helper that checks if MS_NOSYMFOLLOW is supported 2023-03-09 16:14:29 +01:00
Lennart Poettering c115e1615b missing: add more defines to fsopen() definitions 2023-03-09 16:13:42 +01:00
Lennart Poettering 34a9da0d8e missing: add fsmount() syscall fallback definition 2023-03-09 16:12:37 +01:00
Yu Watanabe 367de0a9b7 system.conf: add default for memory pressure settings
Follow-up for #26393.
2023-03-09 23:43:17 +09:00
Yu Watanabe 054749e413 core: add missing MemoryPressureWatch= and MemoryPressureThresholdSec= setting
Follow-up for #26393.

Addresses https://github.com/systemd/systemd/pull/26393#issuecomment-1458655798.
2023-03-09 23:43:04 +09:00
Frantisek Sumsal 715b4c26dc test: fall back to /sys/fs/cgroup/systemd if necessary
Necessary for some CI setups where we boot an nspawn container on a host
with older systemd with legacy hierarchy, so systemd mounts its stuff
under /sys/fs/cgroup/systemd.
2023-03-09 15:27:48 +01:00
Jeidnx 2208d96623 man: fix typo in ukify page 2023-03-09 14:49:37 +01:00
Frantisek Sumsal b3ba7d6274 test: force mkfs.btrfs to overwrite any existing file systems
mkfs.btrfs (unlike mkfs.ext4) checks if the target already contains
a file system and refuses to continue if so. This causes spurious fails
in case the random garbage on the temporary device matches a valid FS
header:

[   19.723806] testsuite-64.sh[355]: + udevadm lock --device=/dev/mapper/encbtrfs0 --device=/dev/mapper/encbtrfs1 --device=/dev/mapper/encbtrfs2 --device=/dev/mapper/encbtrfs3 mkfs.btrfs -M -d raid1 -m raid1 -L btrfs_mencdisk -U deadbeef-dead-dead-beef-000000000003 /dev/mapper/encbtrfs0 /dev/mapper/encbtrfs1 /dev/mapper/encbtrfs2 /dev/mapper/encbtrfs3
[   19.918934] testsuite-64.sh[2494]: ERROR: /dev/mapper/encbtrfs0 appears to contain an existing filesystem (hfsplus)
[   19.920490] testsuite-64.sh[2494]: ERROR: use the -f option to force overwrite of /dev/mapper/encbtrfs0

Let's force mkfs.btrfs to overwrite the file system in such case.
2023-03-09 13:50:15 +01:00
Zbigniew Jędrzejewski-Szmek 7b3693e4e4 manager: in dump, show controllers in "Delegate:"
After Delegate= was converted from boolean to a controller list, the dump
output was changed to have a separate line about the delegated controllers:

  ...
  DevicePolicy: auto
  DisableControllers:
  Delegate: yes
  ManagedOOMSwap: auto
  ManagedOOMMemoryPressure: auto
  ManagedOOMMemoryPressureLimit: 0.00%
  ManagedOOMPreference: none
  DelegateControllers: cpu memory pids
  ...

The line with "Delegate:" is redundant, it effectively shows if
"DelegateControllers:" is non-empty. It is nicer to keep the lines
about controllers adjacent. And to avoid duplicate output, Delegate:
will now show which controllers are enabled. This makes the output
for that line again match the configuration stanza Delegate=:

  DisableControllers:
  Delegate: cpu io memory pids
  ManagedOOMSwap: auto
  ManagedOOMMemoryPressure: auto
  ManagedOOMMemoryPressureLimit: 0.00%
  ManagedOOMPreference: none
  MemoryPressureWatch: auto
  MemoryPressureThresholdSec: 100ms

Dump output is for debugging, we don't need to maintain strict
backwards-compat.
2023-03-09 21:36:38 +09:00
Mike Yuan 5d2ab010df journalctl: fix when --since, --until and --lines are used altogether
This is a follow-up for #26669 (81fb5375b3).

After the mentioned commit, we stopped checking if the
entry is within the range of --until if --lines is used.

However, when --since, --until and --lines=N are used
altogether, and the number of lines between --since
and --until is smaller than N, we would seek to --since
later (f582695107).
This breaks the assumption that if --lines is set,
the boundary is never exceeded because the counter of
outputs gets us covered.
2023-03-09 21:36:12 +09:00
Zbigniew Jędrzejewski-Szmek b2d3e2a0dc tests: merge test-tmpfiles.c into test-tmpfile-util.c
The former was added in 65b3903ff5,
but the name is confusing: the test has nothing to do with systemd-tmpfiles.
It had one function that mostly tested functions from tmpfile-util.c, so
just move it into the latter.
2023-03-09 21:35:53 +09:00
Frantisek Sumsal cca295ab7a test: don't fail if we can't remove the scsi_debug module
Let's make the cleanup 'best effort' operation, as sometimes we might
not be able to remove the scsi_debug module, and we don't really care
if it stays loaded:

[   88.521333] testsuite-17.sh[1827]: ID_TEST=test
[   88.522015] testsuite-17.sh[1679]: + rmmod scsi_debug
[   88.524795] testsuite-17.sh[1828]: rmmod: ERROR: Module scsi_debug is in use
[   88.527786] testsuite-17.sh[1679]: + cleanup_17_10
2023-03-09 13:32:56 +01:00
Frantisek Sumsal 72f6d0e556 test: bump the D-Bus related timeouts to 120s
Let's attempt to reduce the amount of flakes further when the AWS region
we run in is under heavy load and the hypervisor stars stealing our CPU
time.

Follow-up to e0cbb73911 and c78d18215b.
2023-03-09 13:27:57 +01:00
Frantisek Sumsal 15eda898af test: ignore busctl tree fails
As the test runs during machine bootup where jobs run in parallel,
busctl might attempt to introspect a job that already finished and fail.
Since in this case we're more interested in crashes/leaks, let's ignore
the exit code.

Follow-up to 16600a8661.
2023-03-09 11:34:14 +01:00
Zbigniew Jędrzejewski-Szmek ba0e70673c Merge pull request #26038 from lilyinstarlight/fix/fstab-generator-sysroot-without-cmdline
fstab-generator: use correct targets when /sysroot is specificied in fstab only
2023-03-09 08:51:31 +01:00
Yu Watanabe b9872fe1dd macro: support the case that the number of elements has const qualifier
Follow-up for 5716c27e1f.

Addresses https://github.com/systemd/systemd/pull/26303#issuecomment-1460712007.
2023-03-09 08:41:43 +01:00
Yu Watanabe 00aba43fe6 Merge pull request #26698 from ldv-alt/udevadm-verify
Implement a udev rules syntax checker in the form of
`udevadm verify [OPTIONS] FILE...` command that is based on
`udev_rules_parse_file` interface and would apply further checks
on top of it in the future.

Resolves: #26606
2023-03-09 13:05:57 +09:00
Zbigniew Jędrzejewski-Szmek 080ecabfd7 localed: print a custom message if libxkbcommon.so is unvailable
Follow-up for 82c2095a5e.

> I feel like the logging here may be a bit confusing on the new path.
> Previously you did get a message that explained what was going on. Now you get
> an info message that the layout could not be compiled, and … that's all. I can
> imagine this being a confusing red herring if someone was trying to debug a
> problem and saw this message. Perhaps we should log something else instead/as
> well, on the case where libxkbcommon isn't present, to say that's what we're
> logging about and it just means we can't validate the configuration, not that
> it's definitely invalid?
2023-03-09 11:16:13 +09:00
Luca Boccassi 25a45b0dd1 Merge pull request #26119 from kraxel/uki.install
kernel-install: improve uki handling
2023-03-08 21:25:25 +00:00
Luca Boccassi 2ca6f09b30 Merge pull request #26656 from yuwata/mkdir-error-code
mkdir: fix error code
2023-03-08 21:23:07 +00:00