]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 years agotest: unify handling of boolean values
Frantisek Sumsal [Sun, 4 Jul 2021 10:21:23 +0000 (12:21 +0200)] 
test: unify handling of boolean values

Let's unify handling of the boolean values throughout the test-functions
code, since we use 0/1, true/false, and yes/no almost randomly in many
places, so picking the right values during CI configuration can be a real
pain.

4 years agoTODO: reorder entries by component
Luca Boccassi [Sat, 3 Jul 2021 15:26:21 +0000 (16:26 +0100)] 
TODO: reorder entries by component

Roughly reorder entries, without rewording anything, by component, so
that there's some structure to the text.
Only 3 lines are deleted: an empty line, 'External:' at the bottom since
it was merged with 'External:' at the top, and the weird last line:
'String is not UTF-8 clean, ignoring assignment' which was likely an error
from some editor

4 years agomkosi: initialize /usr/lib/os-release' IMAGE_ID + IMAGE_VERSION fields from build
Lennart Poettering [Fri, 2 Jul 2021 12:59:58 +0000 (14:59 +0200)] 
mkosi: initialize /usr/lib/os-release' IMAGE_ID + IMAGE_VERSION fields from build

If it's passed into the build, use it, so that the mkosi build version
is propagated into the image itself.

4 years agotest: optionally, only save test journal for failing tests
Dan Streetman [Fri, 2 Jul 2021 14:38:14 +0000 (10:38 -0400)] 
test: optionally, only save test journal for failing tests

Saving the journal for passing tests creates a huge amount of unneeded
data stored for each full test run. Add a env var to allow saving the
journal only for failed tests.

4 years agoMerge pull request #20108 from yuwata/network-fix-ndisc-and-dhcp6-issue-20050
Zbigniew Jędrzejewski-Szmek [Sat, 3 Jul 2021 07:17:29 +0000 (09:17 +0200)] 
Merge pull request #20108 from yuwata/network-fix-ndisc-and-dhcp6-issue-20050

network: remove old addresses and routes after new ones are configured

4 years agohashmap: make sure hashmap_get_strv()+set_get_strv() work with a NULL object
Lennart Poettering [Fri, 2 Jul 2021 13:15:17 +0000 (15:15 +0200)] 
hashmap: make sure hashmap_get_strv()+set_get_strv() work with a NULL object

Before we invoke n_entries() we need to check for non-NULL here, like in
all other calls to the helper function. Otherwise we'll crash when
invoked with a NULL object, which we usually consider equivalent to an
empty one though.

4 years agounits: correct description of final.target
qhill [Fri, 2 Jul 2021 13:13:13 +0000 (14:13 +0100)] 
units: correct description of final.target

This was updated incorrectly in https://github.com/systemd/systemd/pull/20058/commits/4fd3fc66396026f81fd5b27746f2faf8a9a7b9ee.  As https://github.com/systemd/systemd/blob/main/man/systemd.special.xml decribes, this unit is about shutdown rather than boot.

4 years agoudev: when booting without root= specification, and searching a root partition actual...
Lennart Poettering [Fri, 2 Jul 2021 13:35:39 +0000 (15:35 +0200)] 
udev: when booting without root= specification, and searching a root partition actually do the version comparison magic

Since 08fe0a53869f27a9bfbc5bd31f27058145d46745 when dissecting a disk
image we'll automatically pick the "newest" root fs if multiple exist,
by comparing GPT partition labels. This works in systemd-nspawn,
systemd-dissect, systemd-tmpfiles --image, … and so on. It also works
already in systemd-gpt-auto-generator. However, there was one missing
place: in the logic that automatically finds a root fs in case no root=
was specified on the kernel logic at all. This logic doesn't use the
dissection logic, but a much simpler one.

Let's fill the gap, and implement it there too.

4 years agocoredumpctl: show --help text if "coredumpctl help" is called
Lennart Poettering [Fri, 2 Jul 2021 13:30:43 +0000 (15:30 +0200)] 
coredumpctl: show --help text if "coredumpctl help" is called

Most of our programs that take "verbs" make the "help" verb either
equivalent to passing the --help switch (or at least print a message
redirecting the user to that switch). Do so in coredumpctl too, in order
to minimize surprises.

4 years agoudev: Fix by-uuid symlink for ubifs volumes
Trent Piepho [Thu, 1 Jul 2021 19:19:57 +0000 (12:19 -0700)] 
udev: Fix by-uuid symlink for ubifs volumes

ubifs volumes have a UUID and the built-in blkid is able to determine
it.  The disk/by-uuid symlink isn't created because ubifs volumes are
not on block devices but on SUBSYSTEM="ubi" devices.  See #20071.

Allow ubi subsystem devices to be processed by the persistent storage
rules too.  The kernel device name matching already allows ubi* to pass.
The existing rules are sufficient to create the link.

The links look like other by-uuid symlinks, for example:
/dev/disk/by-uuid/9a136158-585b-4ba4-9b70-cbaf2cf78a1c -> ../../ubi0_1

4 years agonetwork: fix overflow issue in address lifetime calculation 20108/head
Yu Watanabe [Fri, 2 Jul 2021 13:26:04 +0000 (22:26 +0900)] 
network: fix overflow issue in address lifetime calculation

Fixes another issue reported in #20050. See
https://github.com/systemd/systemd/issues/20050#issuecomment-872967337.

4 years agonetwork: drop old dhcp6 addresses or routes after new ones are configured
Yu Watanabe [Fri, 2 Jul 2021 11:19:17 +0000 (20:19 +0900)] 
network: drop old dhcp6 addresses or routes after new ones are configured

Fixes the issue similar to #20050 but for DHCP6.

4 years agonetwork: drop old ndisc configurations after new ones are configured
Yu Watanabe [Fri, 2 Jul 2021 11:15:10 +0000 (20:15 +0900)] 
network: drop old ndisc configurations after new ones are configured

Previously, `ndisc_remove_old_one()` checked `ndisc_{addresses,routes}_configured`
flags, but they are not unset when all addresses or routes are already
assigned.
After the request queue is implemented, the address or route requests
are not processed within the same event of ndisc handler is called, but
will processed later when they are ready. So, calling `ndisc_remove_old()`
in the event of ndisc handler will remove all addresses and routes
previously assigned even they are requested to be updated.

This makes `ndisc_remove_old()` do nothing when there exist some
requests to configure addresses and routes, thus previously assigned
addresses and routes are kept until all requests are processed.

Fixes #20050.

4 years agonetwork: fix log message
Yu Watanabe [Fri, 2 Jul 2021 11:13:32 +0000 (20:13 +0900)] 
network: fix log message

4 years agowait-online: improve timeout log message
Lennart Poettering [Fri, 2 Jul 2021 07:53:16 +0000 (09:53 +0200)] 
wait-online: improve timeout log message

The time-out when waiting to reach the online state is a pretty
regularly seen error, let's print an explicit log message for it. The
previous "Event loop failed: timed out" message is a bit too low-level I
think for regular users (as event loops are a developer's concept, not a
user's, really).

Note that outputting low-level error messages is generally actually OK I
think — for unexpected errors, but this timeout is a pretty expected one,
directly configurable by the user, hence output something friendly.

4 years agoparse-socket-bind-item: fix typo in comment
Yu Watanabe [Fri, 2 Jul 2021 11:49:40 +0000 (20:49 +0900)] 
parse-socket-bind-item: fix typo in comment

This also adds a blank line after each function declaration to follow our
coding style.

4 years agopo: Translated using Weblate (Russian)
Alexey Rubtsov [Fri, 2 Jul 2021 09:04:21 +0000 (11:04 +0200)] 
po: Translated using Weblate (Russian)

Currently translated at 100.0% (189 of 189 strings)

Co-authored-by: Alexey Rubtsov <rushills@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/ru/
Translation: systemd/main

4 years agooomd: review follow ups to #20020
Anita Zhang [Fri, 2 Jul 2021 00:07:32 +0000 (17:07 -0700)] 
oomd: review follow ups to #20020

4 years agoselinux: support infering SELinux label also from socket not connected to stdin
Michal Sekletar [Tue, 29 Jun 2021 15:10:27 +0000 (17:10 +0200)] 
selinux: support infering SELinux label also from socket not connected to stdin

Fixes #19918

4 years agoTODO: mention the new core scheduling kernel feature
Luca Boccassi [Thu, 1 Jul 2021 17:22:31 +0000 (18:22 +0100)] 
TODO: mention the new core scheduling kernel feature

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/hw-vuln/core-scheduling.rst

4 years agoNEWS: update for imminent v249-rc3 tag v249-rc3
Lennart Poettering [Thu, 1 Jul 2021 15:15:13 +0000 (17:15 +0200)] 
NEWS: update for imminent v249-rc3 tag

4 years agohwdb: Add accel orientation quirk for the Chuwi Hi13 (CWI534) with BMA250 sensor
Hans de Goede [Thu, 1 Jul 2021 13:28:25 +0000 (15:28 +0200)] 
hwdb: Add accel orientation quirk for the Chuwi Hi13 (CWI534) with BMA250 sensor

Recently the kernel has gotten support for reading the mount-matrix for
BMA250 sensors represented by a BOSC0200 ACPI device from the ACPI tables,
so that we don't need to add quirks for these.

At least that was the theory. The Chuwi Hi13 (CWI534) with BMA250 sensor
has the sensor mounted such that it works / needs the normal(ized) matrix,
but the ACPI tables actually contain a wrong matrix inverting the X and Y
axis.

Add a quirk to override /sys/bus/iio/devices/iio:device?/in_mount_matrix
with the norm-matrix, since the ACPI derived matrix is actually wrong on
these devices (sigh)

4 years agoRevert "rules: ubi mtd - add link to named partitions"
Lennart Poettering [Thu, 1 Jul 2021 13:03:16 +0000 (15:03 +0200)] 
Revert "rules: ubi mtd - add link to named partitions"

This reverts commit 7f1e9c806b6915e8020cf3706dc87e1cd37bc2fa, PR #6750

Apparently the rule change never worked, see #20071.

Fixes #20071

4 years agocore: always set output arg in unit_status_string()
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 08:19:06 +0000 (10:19 +0200)] 
core: always set output arg in unit_status_string()

As requested in https://github.com/systemd/systemd/pull/20058#pullrequestreview-696942153.

4 years agoMerge pull request #20091 from keszybz/test-time-util-skip-missing-timezone
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 13:24:09 +0000 (15:24 +0200)] 
Merge pull request #20091 from keszybz/test-time-util-skip-missing-timezone

4 years agocore: add comment explaining event source deallocation
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 09:06:45 +0000 (11:06 +0200)] 
core: add comment explaining event source deallocation

Followup for bc989831e6. The original reproducer still works w/o the unref,
and doesn't work with this change.

4 years agoMerge pull request #20083 from yuwata/network-ipv4acd-follow-ups
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 11:11:36 +0000 (13:11 +0200)] 
Merge pull request #20083 from yuwata/network-ipv4acd-follow-ups

network: ipv4acd follow-ups

4 years agotest-time-util: log less verbosely 20091/head
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 10:17:40 +0000 (10:17 +0000)] 
test-time-util: log less verbosely

Output can always be kranked up with LOG_LEVEL=debug. But let's make less
predictable noise by default.

4 years agotest-time-util: skip missing timezones
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 10:16:56 +0000 (10:16 +0000)] 
test-time-util: skip missing timezones

Fixes #20089. This is essentially a packaging bug in CentOS: the
db lists a timezone which is not present in /usr/share/zoneinfo.
Let's skip this gracefully.

4 years agotime-util: add variant of timezone_is_valid() that returns errno
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 10:10:52 +0000 (10:10 +0000)] 
time-util: add variant of timezone_is_valid() that returns errno

This will be useful for tests to skip missing time zones.

4 years agoNEWS: fix misplaces parenthesis
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 09:40:17 +0000 (11:40 +0200)] 
NEWS: fix misplaces parenthesis

https://github.com/systemd/systemd/commit/154b2f6129018f3b731839ba8b52bfa3e9ee6230#commitcomment-52902617

4 years agoRevert "login: XGI Z7/Z9 (XG20 core) graphic chip requires master-of-seat to be set"
Lennart Poettering [Thu, 1 Jul 2021 08:38:36 +0000 (10:38 +0200)] 
Revert "login: XGI Z7/Z9 (XG20 core) graphic chip requires master-of-seat to be set"

This reverts commit b25389d2bbc99aee82414d9d76ce1192f4b6fe52.

4 years agoNEWS: update contributor list for v249-rc3
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 07:41:30 +0000 (09:41 +0200)] 
NEWS: update contributor list for v249-rc3

4 years agoNEWS: add news entry for status-unit-format=combined
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 07:40:15 +0000 (09:40 +0200)] 
NEWS: add news entry for status-unit-format=combined

4 years agoMerge pull request #20066 from ddstreet/get-timezones
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 07:29:24 +0000 (09:29 +0200)] 
Merge pull request #20066 from ddstreet/get-timezones

time: use tzdata.zi instead of zone1970.tab for list of all timezones

4 years agonetwork: fix segfault in link_update_hardware_address() 20083/head
Yu Watanabe [Thu, 1 Jul 2021 05:52:05 +0000 (14:52 +0900)] 
network: fix segfault in link_update_hardware_address()

This fixes a bug introduced by fe321d457c118be5d1640b586135a69d1db9270a.

When we want to update a value (in the case of this commit, it is a hardware
address) which is used as a hashmap key, we need to do the following steps:
1. remove the old hashmap entry,
2. update the value,
3. create a new hashmap entry with the new value.

4 years agonetwork: ipv4acd: update log message
Yu Watanabe [Wed, 30 Jun 2021 21:38:53 +0000 (06:38 +0900)] 
network: ipv4acd: update log message

C.f. https://github.com/systemd/systemd/pull/19980#discussion_r661784168

4 years agoMerge pull request #20080 from bluca/core_flag
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 07:04:15 +0000 (09:04 +0200)] 
Merge pull request #20080 from bluca/core_flag

analyze: do not attempt to set up cgroups while verifying units

4 years agoMerge pull request #20058 from keszybz/status-format
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 06:58:14 +0000 (08:58 +0200)] 
Merge pull request #20058 from keszybz/status-format

Implement StatusUnitFormat=combined and prettify Descriptions

4 years agoMerge pull request #20030 from keszybz/exec_fd-event-source
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jul 2021 06:57:23 +0000 (08:57 +0200)] 
Merge pull request #20030 from keszybz/exec_fd-event-source

exec_fd event source rework

4 years agoRevert "core: do not set noexec on sysfs/procfs"
Lennart Poettering [Mon, 1 Mar 2021 17:02:24 +0000 (18:02 +0100)] 
Revert "core: do not set noexec on sysfs/procfs"

This reverts commit b33cd6b3eec52fc50c6c34d6f07a41cc6254c27f.

4 years agoanalyze: use MANAGER_TEST_RUN_MINIMAL instead of MANAGER_TEST_RUN_BASIC 20080/head
Luca Boccassi [Wed, 30 Jun 2021 23:06:10 +0000 (00:06 +0100)] 
analyze: use MANAGER_TEST_RUN_MINIMAL instead of MANAGER_TEST_RUN_BASIC

MANAGER_TEST_RUN_MINIMAL allows to skip setting up cgroups, which we don't
really want to do in systemd-analyze. MANAGER_TEST_RUN_BASIC doesn't
actually do anything by itself anyway.

4 years agocore: do not setup/teardown cgroup if MANAGER_TEST_RUN_MINIMAL is set as a flag
Luca Boccassi [Wed, 30 Jun 2021 23:04:58 +0000 (00:04 +0100)] 
core: do not setup/teardown cgroup if MANAGER_TEST_RUN_MINIMAL is set as a flag

Rather than checking if test_run_flags is set exclusively to MANAGER_TEST_RUN_MINIMAL,
check if it is set as a flag, so that it can be used together with other flags.

4 years agoMerge pull request #20076 from keszybz/improve-logs-for-exec-condition-and-rescoping
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 20:23:10 +0000 (22:23 +0200)] 
Merge pull request #20076 from keszybz/improve-logs-for-exec-condition-and-rescoping

Improve logs for ExecCondition and rescoping

4 years agoMerge pull request #19980 from yuwata/sd-ipv4acd-filter-all-hwaddr
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 20:22:47 +0000 (22:22 +0200)] 
Merge pull request #19980 from yuwata/sd-ipv4acd-filter-all-hwaddr

network: IPv4LL and ACD fixes

4 years agoMerge pull request #20020 from anitazha/oomd_with_mem
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 19:59:34 +0000 (21:59 +0200)] 
Merge pull request #20020 from anitazha/oomd_with_mem

oomd: check that memory use also exceeds threshold before doing a swap kill

4 years agocore: when recursively bind-remounting nested mounts, use options from top one
Luca Boccassi [Wed, 30 Jun 2021 14:51:03 +0000 (15:51 +0100)] 
core: when recursively bind-remounting nested mounts, use options from top one

When mount points are stacked, bind_remount_recursive_with_mountinfo()
uses the existing mount options of the "lower" level mount (ie: the
first one that was mounted on a mount point). But the actual mount
point in use is the "top" one (ie: the last one that was mounted on a
mount point), so in practice if the mount options are different between
the layers, the bottom options are used by mistake on the top mount,
which is not what we want. This is because libmount returns the "bottom"
one first.

If the hashmap returns EEXIST, which means the same key (path) with different
value (options) is already present, update the hashmap instead of discarding
the result. This way, the last/top mount options are always used when
mounts are stacked on a mount point.

This was found to cause problems as LXC version 4.x stacks two /sys mounts,
the bottom one read-write and the top one read-only. systemd accidentally
remounts the top-one read-write, breaking various expectations since a
read-only /sys is the way we decide whether we are running in a container
or not (in this particular case, networkd tests are broken as networkd
expects to be able to modify network settings with a writable /sys).

Future versions of LXC will no longer do this double-stacking, but we
need to support running inside older versions too.

This was triggered by https://github.com/systemd/systemd/commit/6720e356c137
as that causes a recursive remount of '/', which processes '/sys' as one
of the submounts, from make_nosuid(). But it's likely that other combinations
of options could trigger this as well.

Before:

root@systemd-debug:/# systemd-run -t --wait --property ProtectSystem=yes findmnt
Running as unit: run-u9.service
Press ^] three times within 1s to disconnect TTY.
TARGET                         SOURCE                           FSTYPE    OPTIONS
/                              /dev/sda2[/var/lib/lxc/systemd-debug/rootfs]
│                                                               ext4      ro,nosuid,relatime,errors=remount-ro,stripe=
├─/dev                         none                             tmpfs     rw,nosuid,relatime,size=492k,mode=755
│ ├─/dev/.lxc/proc             proc                             proc      rw,nosuid,relatime
│ ├─/dev/.lxc/sys              sys                              sysfs     rw,nosuid,relatime
│ ├─/dev/console               devpts[/2]                       devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/pts                   devpts                           devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/ptmx                  devpts[/ptmx]                    devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/tty1                  devpts[/0]                       devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/tty2                  devpts[/1]                       devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/tty3                  devpts[/2]                       devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/tty4                  devpts[/3]                       devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptm
│ ├─/dev/shm                   tmpfs                            tmpfs     rw,nosuid,nodev
│ ├─/dev/hugepages             hugetlbfs                        hugetlbfs rw,nosuid,relatime,pagesize=2M
│ └─/dev/mqueue                mqueue                           mqueue    rw,nosuid,nodev,noexec,relatime
├─/proc                        proc                             proc      rw,nosuid,nodev,noexec,relatime
│ ├─/proc/sys                  proc[/sys]                       proc      ro,nosuid,nodev,noexec,relatime
│ │ ├─/proc/sys/net            proc[/sys/net]                   proc      rw,nosuid,nodev,noexec,relatime
│ │ └─/proc/sys/kernel/random/boot_id
│ │                            none[/.lxc-boot-id]              tmpfs     ro,nosuid,nodev,noexec,relatime,size=492k,mo
│ └─/proc/sysrq-trigger        proc[/sysrq-trigger]             proc      ro,nosuid,nodev,noexec,relatime
├─/sys                         sysfs                            sysfs     rw,nosuid,nodev,noexec,relatime
│ └─/sys                       sysfs                            sysfs     rw,nosuid,nodev,noexec,relatime
│   ├─/sys/devices/virtual/net sysfs                            sysfs     rw,relatime
│   │ └─/sys/devices/virtual/net
│   │                          sysfs[/devices/virtual/net]      sysfs     rw,nosuid,relatime
│   ├─/sys/fs/fuse/connections fusectl                          fusectl   rw,nosuid,nodev,noexec,relatime
│   └─/sys/fs/cgroup           cgroup                           cgroup2   rw,nosuid,nodev,noexec,relatime,nsdelegate,m
├─/run                         tmpfs                            tmpfs     ro,nosuid,nodev,size=4912348k,nr_inodes=8192
│ ├─/run/credentials           tmpfs[/systemd/inaccessible/dir] tmpfs     ro,nosuid,nodev,noexec,size=4912348k,nr_inod
│ └─/run/systemd/incoming      tmpfs[/systemd/propagate/run-u9.service]
│                                                               tmpfs     ro,nosuid,nodev,size=4912348k,nr_inodes=8192
├─/tmp                         tmpfs                            tmpfs     rw,nosuid,nodev,size=12280872k,nr_inodes=409
│ └─/tmp                       tmpfs[/systemd-private-b730df90da424397a3f246cb15dcdbb1-run-u9.service-K6EUwf/tmp]
│                                                               tmpfs     rw,nosuid,nodev,size=12280872k,nr_inodes=409
└─/var/tmp                     /dev/sda2[/var/lib/lxc/systemd-debug/rootfs/var/tmp/systemd-private-b730df90da424397a3f246cb15dcdbb1-run-u9.service-vEHyRi/tmp]
                                                                ext4      rw,nosuid,relatime,errors=remount-ro,stripe=
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 14.249s
CPU time consumed: 37ms

After:

root@systemd-debug:/# systemd-run -t --wait --property ProtectSystem=yes findmnt
Running as unit: run-u3.service
Press ^] three times within 1s to disconnect TTY.
TARGET                         SOURCE                      FSTYPE    OPTIONS
/                              /dev/sda2[/var/lib/lxc/systemd-debug/rootfs]
│                                                          ext4      rw,relatime,errors=remount-ro,stripe=32699
├─/dev                         none                        tmpfs     rw,relatime,size=492k,mode=755
│ ├─/dev/.lxc/proc             proc                        proc      rw,relatime
│ ├─/dev/.lxc/sys              sys                         sysfs     rw,relatime
│ ├─/dev/console               devpts[/2]                  devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/pts                   devpts                      devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/ptmx                  devpts[/ptmx]               devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/tty1                  devpts[/0]                  devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/tty2                  devpts[/1]                  devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/tty3                  devpts[/2]                  devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/tty4                  devpts[/3]                  devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode
│ ├─/dev/shm                   tmpfs                       tmpfs     rw,nosuid,nodev
│ ├─/dev/hugepages             hugetlbfs                   hugetlbfs rw,relatime,pagesize=2M
│ └─/dev/mqueue                mqueue                      mqueue    rw,nosuid,nodev,noexec,relatime
├─/proc                        proc                        proc      rw,nosuid,nodev,noexec,relatime
│ ├─/proc/sys                  proc[/sys]                  proc      ro,nosuid,nodev,noexec,relatime
│ │ ├─/proc/sys/net            proc[/sys/net]              proc      rw,nosuid,nodev,noexec,relatime
│ │ └─/proc/sys/kernel/random/boot_id
│ │                            none[/.lxc-boot-id]         tmpfs     ro,nosuid,nodev,noexec,relatime,size=492k,mode=75
│ └─/proc/sysrq-trigger        proc[/sysrq-trigger]        proc      ro,nosuid,nodev,noexec,relatime
├─/sys                         sysfs                       sysfs     rw,nosuid,nodev,noexec,relatime
│ └─/sys                       sysfs                       sysfs     ro,nosuid,nodev,noexec,relatime
│   ├─/sys/devices/virtual/net sysfs                       sysfs     rw,relatime
│   │ └─/sys/devices/virtual/net
│   │                          sysfs[/devices/virtual/net] sysfs     rw,nosuid,nodev,noexec,relatime
│   ├─/sys/fs/fuse/connections fusectl                     fusectl   rw,nosuid,nodev,noexec,relatime
│   └─/sys/fs/cgroup           cgroup                      cgroup2   rw,nosuid,nodev,noexec,relatime,nsdelegate,memory
├─/run                         tmpfs                       tmpfs     rw,nosuid,nodev,size=4912348k,nr_inodes=819200,mo
│ ├─/run/credentials           tmpfs[/systemd/inaccessible/dir]
│ │                                                        tmpfs     ro,nosuid,nodev,noexec,size=4912348k,nr_inodes=81
│ └─/run/systemd/incoming      tmpfs[/systemd/propagate/run-u3.service]
│                                                          tmpfs     ro,nosuid,nodev,size=4912348k,nr_inodes=819200,mo
├─/tmp                         tmpfs                       tmpfs     rw,nosuid,nodev,size=12280872k,nr_inodes=409600
├─/boot                        /dev/sda2[/var/lib/lxc/systemd-debug/rootfs/boot]
│                                                          ext4      ro,relatime,errors=remount-ro,stripe=32699
└─/usr                         /dev/sda2[/var/lib/lxc/systemd-debug/rootfs/usr]
                                                           ext4      ro,relatime,errors=remount-ro,stripe=32699
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 14ms
CPU time consumed: 5ms

Host (LXC):

root@systemd-debug:/# findmnt
TARGET                         SOURCE               FSTYPE    OPTIONS
/                              /dev/sda2[/var/lib/lxc/systemd-debug/rootfs]
│                                                   ext4      rw,relatime,errors=remount-ro,stripe=32699
├─/run                         tmpfs                tmpfs     rw,nosuid,nodev,size=4912348k,nr_inodes=819200,mode=755
├─/tmp                         tmpfs                tmpfs     rw,nosuid,nodev,size=12280872k,nr_inodes=409600
├─/dev                         none                 tmpfs     rw,relatime,size=492k,mode=755
│ ├─/dev/pts                   devpts               devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666,ma
│ ├─/dev/ptmx                  devpts[/ptmx]        devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666,ma
│ ├─/dev/tty1                  devpts[/0]           devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666,ma
│ ├─/dev/tty2                  devpts[/1]           devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666,ma
│ ├─/dev/tty3                  devpts[/2]           devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666,ma
│ ├─/dev/tty4                  devpts[/3]           devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666,ma
│ ├─/dev/shm                   tmpfs                tmpfs     rw,nosuid,nodev
│ ├─/dev/hugepages             hugetlbfs            hugetlbfs rw,relatime,pagesize=2M
│ ├─/dev/mqueue                mqueue               mqueue    rw,nosuid,nodev,noexec,relatime
│ ├─/dev/console               devpts[/2]           devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
│ ├─/dev/.lxc/proc             proc                 proc      rw,relatime
│ └─/dev/.lxc/sys              sys                  sysfs     rw,relatime
├─/proc                        proc                 proc      rw,nosuid,nodev,noexec,relatime
│ ├─/proc/sys                  proc[/sys]           proc      ro,nosuid,nodev,noexec,relatime
│ │ ├─/proc/sys/kernel/random/boot_id
│ │ │                          none[/.lxc-boot-id]  tmpfs     ro,nosuid,nodev,noexec,relatime,size=492k,mode=755
│ │ └─/proc/sys/net            proc[/sys/net]       proc      rw,nosuid,nodev,noexec,relatime
│ └─/proc/sysrq-trigger        proc[/sysrq-trigger] proc      ro,nosuid,nodev,noexec,relatime
└─/sys                         sysfs                sysfs     rw,nosuid,nodev,noexec,relatime
  └─/sys                       sysfs                sysfs     ro,nosuid,nodev,noexec,relatime
    ├─/sys/devices/virtual/net sysfs                sysfs     rw,relatime
    │ └─/sys/devices/virtual/net
    │                          sysfs[/devices/virtual/net]
    │                                               sysfs     rw,nosuid,nodev,noexec,relatime
    ├─/sys/fs/fuse/connections fusectl              fusectl   rw,nosuid,nodev,noexec,relatime
    └─/sys/fs/cgroup           cgroup               cgroup2   rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recurs

Fixes https://github.com/systemd/systemd/issues/20032

4 years agoRevert "Introduce ExitType"
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 12:21:33 +0000 (14:21 +0200)] 
Revert "Introduce ExitType"

This reverts commit cb0e818f7cc2499d81ef143e5acaa00c6e684711.

After this was merged, some design and implementation issues were discovered,
see the discussion in #18782 and #19385. They certainly can be fixed, but so
far nobody has stepped up, and we're nearing a release. Hopefully, this feature
can be merged again after a rework.

Fixes #19345.

4 years agocore/cgroup: upgrade log level when we fail to rescope a pid 20076/head
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 15:17:41 +0000 (17:17 +0200)] 
core/cgroup: upgrade log level when we fail to rescope a pid

See https://bugzilla.redhat.com/show_bug.cgi?id=1973058 again:

systemd[1779]: Started Application launched by gnome-session-binary.
systemd[1779]: app-glib-liveinst\x2dsetup-1897.scope: Failed to add PIDs to scope's control group: No such process
systemd[1779]: app-glib-liveinst\x2dsetup-1897.scope: Failed with result 'resources'.
systemd[1779]: Failed to start Application launched by gnome-session-binary.
systemd[1779]: app-glib-xdg\x2duser\x2ddirs-1900.scope: Failed to add PIDs to scope's control group: No such process
systemd[1779]: app-glib-xdg\x2duser\x2ddirs-1900.scope: Failed with result 'resources'.
systemd[1779]: Failed to start Application launched by gnome-session-binary.
systemd[1779]: app-gnome-gsettings\x2ddata\x2dconvert-1902.scope: Failed to add PIDs to scope's control group: No such process
systemd[1779]: app-gnome-gsettings\x2ddata\x2dconvert-1902.scope: Failed with result 'resources'.
systemd[1779]: Failed to start Application launched by gnome-session-binary.

Since we don't show the PID anywhere, it can be quite hard to figure out what
is going on. There may be logs from the pid above or below in the log, but
we have no PID number to identify them. So let's upgrade the log from
unit_attach_pids_to_cgroup() to tell us precisely which PIDs and why couldn't
be handled.

4 years agotime: get timezones from tzdata.zi 20066/head
Dan Streetman [Wed, 30 Jun 2021 11:30:28 +0000 (07:30 -0400)] 
time: get timezones from tzdata.zi

The zone1970.tab file doesn't include any timezone 'aliases'. Instead
of parsing it, parse the tzdata.zi file which does include all zones
as well as aliases.

This keeps the parsing function for zone1970.tab as a fallback in case
the tzdata.zi file isn't found.

4 years agotime: split get_timezone() into main function and zone1970.tab function
Dan Streetman [Wed, 30 Jun 2021 11:17:22 +0000 (07:17 -0400)] 
time: split get_timezone() into main function and zone1970.tab function

This allows for adding another function to read from a different timezone
source, which is added in the next commit.

4 years agotime: simplify get_timezones()
Dan Streetman [Tue, 29 Jun 2021 13:13:22 +0000 (09:13 -0400)] 
time: simplify get_timezones()

The function can be simplified by using extract_many_words() and strv_extend()

4 years agotest-network: update tests for ipv4acd 19980/head
Yu Watanabe [Tue, 22 Jun 2021 06:32:57 +0000 (15:32 +0900)] 
test-network: update tests for ipv4acd

4 years agonetwork: introduce callback fucntions to check the sender MAC address for IPv4ACD...
Yu Watanabe [Fri, 25 Jun 2021 14:33:11 +0000 (23:33 +0900)] 
network: introduce callback fucntions to check the sender MAC address for IPv4ACD and IPv4LL

Fixes #12145.

4 years agonetwork: ipv4acd: first probe address and then assign it
Yu Watanabe [Mon, 21 Jun 2021 19:08:19 +0000 (04:08 +0900)] 
network: ipv4acd: first probe address and then assign it

Previously, if IPv4 ACD is enabled on an address, then we first
assign the address, and start sd-ipv4acd daemon for the address.
This is not only RFC incompliant, but also the address is always
dropped, as the daemon always considers the address is conflicted.

This commit makes networkd first starts sd-ipv4acd daemon to probe
the address, and then the address is configured if no conflict is
detected.

Fixes #17235.

4 years agonetwork: make request_drop() accept NULL
Yu Watanabe [Wed, 30 Jun 2021 15:45:47 +0000 (00:45 +0900)] 
network: make request_drop() accept NULL

4 years agonetwork: acquire address on request configure rather than on configure
Yu Watanabe [Tue, 22 Jun 2021 14:57:57 +0000 (23:57 +0900)] 
network: acquire address on request configure rather than on configure

A preparation for later commits.

4 years agonetwork: rename dhcp_lease_lost() -> dhcp4_lease_lost() and expose it
Yu Watanabe [Tue, 22 Jun 2021 10:48:55 +0000 (19:48 +0900)] 
network: rename dhcp_lease_lost() -> dhcp4_lease_lost() and expose it

A preparation for later commits.

4 years agonetwork: address: do not send tentative flag
Yu Watanabe [Tue, 22 Jun 2021 10:36:39 +0000 (19:36 +0900)] 
network: address: do not send tentative flag

Currently, networkd does not set tentative flag on create, and kernel
ignore the flag on remove. So, this commit does not change any current
behaviour. This is just a preparation for later commits.

4 years agonetwork: introduce link_request_static_address()
Yu Watanabe [Tue, 22 Jun 2021 05:52:47 +0000 (14:52 +0900)] 
network: introduce link_request_static_address()

4 years agonetwork: introduce address_dup() and replace address_copy() with it
Yu Watanabe [Mon, 21 Jun 2021 07:42:22 +0000 (16:42 +0900)] 
network: introduce address_dup() and replace address_copy() with it

4 years agonetwork: ipv4ll: reset MAC address without stopping sd-ipv4ll engine
Yu Watanabe [Sun, 20 Jun 2021 19:28:09 +0000 (04:28 +0900)] 
network: ipv4ll: reset MAC address without stopping sd-ipv4ll engine

4 years agonetwork: ipv4ll: refuse to configure IPv4LL address on interface where the length...
Yu Watanabe [Mon, 21 Jun 2021 19:11:15 +0000 (04:11 +0900)] 
network: ipv4ll: refuse to configure IPv4LL address on interface where the length of the hardware address is not ETH_ALEN

Currently, sd-ipv4acd assumes hardware address is ETH_ALEN.

4 years agonetwork: ipv4ll: make link enter failed state on failure of restarting ipv4ll engine
Yu Watanabe [Sun, 20 Jun 2021 19:30:56 +0000 (04:30 +0900)] 
network: ipv4ll: make link enter failed state on failure of restarting ipv4ll engine

4 years agonetwork: introduce link_get_by_hw_addr()
Yu Watanabe [Fri, 25 Jun 2021 07:25:48 +0000 (16:25 +0900)] 
network: introduce link_get_by_hw_addr()

4 years agonetwork: rename Manager::links -> Manager::links_by_index
Yu Watanabe [Fri, 25 Jun 2021 06:58:30 +0000 (15:58 +0900)] 
network: rename Manager::links -> Manager::links_by_index

This also renames link_get() -> link_get_by_index().

4 years agoether-addr-util: introduce hw_addr_hash_ops
Yu Watanabe [Fri, 25 Jun 2021 06:55:36 +0000 (15:55 +0900)] 
ether-addr-util: introduce hw_addr_hash_ops

4 years agosd-ipv4ll: introduce sd_ipv4ll_set_check_mac_callback()
Yu Watanabe [Fri, 25 Jun 2021 07:50:22 +0000 (16:50 +0900)] 
sd-ipv4ll: introduce sd_ipv4ll_set_check_mac_callback()

4 years agosd-ipv4ll: allow to set MAC address without stopping sd-ipv4ll engine
Yu Watanabe [Sun, 20 Jun 2021 19:00:31 +0000 (04:00 +0900)] 
sd-ipv4ll: allow to set MAC address without stopping sd-ipv4ll engine

4 years agosd-ipv4acd: update condition of address conflict
Yu Watanabe [Sun, 20 Jun 2021 18:45:29 +0000 (03:45 +0900)] 
sd-ipv4acd: update condition of address conflict

See RFC 5227 section 2.1.1.

This introduces a callback which intend to a library user, e.g.
networkd, checks whether the sender hardware address is a MAC address of
the host's intrerface or not.

4 years agosd-ipv4acd: allow to change requesting address without restarting sd-ipv4acd
Yu Watanabe [Sun, 20 Jun 2021 17:47:20 +0000 (02:47 +0900)] 
sd-ipv4acd: allow to change requesting address without restarting sd-ipv4acd

4 years agosd-ipv4acd: set defend window in timeout event and state is IPV4ACD_STATE_STARTED
Yu Watanabe [Sun, 20 Jun 2021 17:45:45 +0000 (02:45 +0900)] 
sd-ipv4acd: set defend window in timeout event and state is IPV4ACD_STATE_STARTED

4 years agosd-ipv4acd: allow to change MAC address without restarting sd-ipv4acd
Yu Watanabe [Sun, 20 Jun 2021 17:29:46 +0000 (02:29 +0900)] 
sd-ipv4acd: allow to change MAC address without restarting sd-ipv4acd

This also makes sd_ipv4acd_set_mac() refuses null MAC address.

4 years agoarp-util: split out logic of setting BPF code into a function
Yu Watanabe [Sun, 20 Jun 2021 17:21:59 +0000 (02:21 +0900)] 
arp-util: split out logic of setting BPF code into a function

4 years agoarp-util: use struct in_addr
Yu Watanabe [Fri, 18 Jun 2021 07:02:46 +0000 (16:02 +0900)] 
arp-util: use struct in_addr

4 years agoarp-util: make arp_send_{probe,announcement}() inline
Yu Watanabe [Fri, 18 Jun 2021 06:40:38 +0000 (15:40 +0900)] 
arp-util: make arp_send_{probe,announcement}() inline

4 years agoarp-util: shorten code a bit
Yu Watanabe [Fri, 18 Jun 2021 06:29:07 +0000 (15:29 +0900)] 
arp-util: shorten code a bit

4 years agoarp-util: check ifindex and mac address
Yu Watanabe [Fri, 18 Jun 2021 06:18:57 +0000 (15:18 +0900)] 
arp-util: check ifindex and mac address

4 years agoarp-util: check sent message size
Yu Watanabe [Fri, 18 Jun 2021 06:17:11 +0000 (15:17 +0900)] 
arp-util: check sent message size

4 years agoarp-util: align elements
Yu Watanabe [Fri, 18 Jun 2021 06:16:11 +0000 (15:16 +0900)] 
arp-util: align elements

4 years agosd-ipv4acd: include announced address in log message
Yu Watanabe [Sun, 20 Jun 2021 16:42:58 +0000 (01:42 +0900)] 
sd-ipv4acd: include announced address in log message

4 years agosd-ipv4acd: use struct in_addr instead of be32_t
Yu Watanabe [Fri, 18 Jun 2021 06:12:25 +0000 (15:12 +0900)] 
sd-ipv4acd: use struct in_addr instead of be32_t

4 years agoMerge pull request #20074 from yuwata/fix-typo
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 15:26:51 +0000 (17:26 +0200)] 
Merge pull request #20074 from yuwata/fix-typo

tree-wide: fix typo

4 years agocore/cgroup: inline more iterator variable declarations
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 15:10:43 +0000 (17:10 +0200)] 
core/cgroup: inline more iterator variable declarations

4 years agocore: emit nicer log message for exiting ConditionExec processes
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 15:02:45 +0000 (17:02 +0200)] 
core: emit nicer log message for exiting ConditionExec processes

See https://bugzilla.redhat.com/show_bug.cgi?id=1973058:

we would log something like:
systemd[244]: Starting willskip.service...
systemd[244]: willskip.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
systemd[244]: willskip.service: Skipped due to 'exec-condition'.
systemd[244]: Condition check resulted in willskip.service being skipped.

The line with 'Control process exited' would be at LOG_NOTICE level.

With the patch:
systemd[244]: Starting willskip.service...
systemd[244]: willskip.service: Skipped due to 'exec-condition'.
systemd[244]: Condition check resulted in willskip.service being skipped.

Debug logs:
systemd[244]: Starting willskip.service...
systemd[244]: Sent message type=signal sender=org.freedesktop.systemd1 destination=n/a path=/org/freedesktop/systemd1/unit/willskip_2eservice interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=8 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
systemd[244]: Sent message type=signal sender=org.freedesktop.systemd1 destination=n/a path=/org/freedesktop/systemd1/unit/willskip_2eservice interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=9 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
systemd[244]: Sent message type=signal sender=org.freedesktop.systemd1 destination=n/a path=/org/freedesktop/systemd1/job/46 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=10 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
systemd[11020]: Skipping PR_SET_MM, as we don't have privileges.
systemd[11020]: willskip.service: Executing: sh -c 'exit 2'
systemd[244]: Received SIGCHLD from PID 11020 (sh).
systemd[244]: Child 11020 (sh) died (code=exited, status=2/INVALIDARGUMENT)
systemd[244]: willskip.service: Child 11020 belongs to willskip.service.
systemd[244]: willskip.service: Condition check process exited, code=exited, status=2/INVALIDARGUMENT (success)
systemd[244]: willskip.service: Got final SIGCHLD for state condition.
systemd[244]: willskip.service: Skipped due to 'exec-condition'.
systemd[244]: willskip.service: Service will not restart (restart setting)
systemd[244]: willskip.service: Changed condition -> dead
systemd[244]: willskip.service: Job 46 willskip.service/start finished, result=done
systemd[244]: Condition check resulted in willskip.service being skipped.

4 years agologin: XGI Z7/Z9 (XG20 core) graphic chip requires master-of-seat to be set
Franck Bui [Wed, 30 Jun 2021 07:09:37 +0000 (09:09 +0200)] 
login: XGI Z7/Z9 (XG20 core) graphic chip requires master-of-seat to be set

This graphic chip doesn't have a DRM driver and fallback to vesa-framebuffer
driver.

Without this patch, users of such chip suddenly see their GUI broken without
any indication or reason of what happened (no error message). Hence this
regression is near to impossible to troubleshoot for end users.

4 years agotree-wide: "a" -> "an" 20074/head
Yu Watanabe [Wed, 30 Jun 2021 12:26:47 +0000 (21:26 +0900)] 
tree-wide: "a" -> "an"

4 years agotree-wide: fix "the the" and "a a"
Yu Watanabe [Wed, 30 Jun 2021 11:53:14 +0000 (20:53 +0900)] 
tree-wide: fix "the the" and "a a"

4 years agoMerge pull request #20021 from wat-ze-hex/socket-bind-ip-proto-2021-06-23
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 12:46:27 +0000 (14:46 +0200)] 
Merge pull request #20021 from wat-ze-hex/socket-bind-ip-proto-2021-06-23

core/bpf: support IP protocol in SocketBind{Allow|Deny}=

4 years agoman: fix typo
Yu Watanabe [Wed, 30 Jun 2021 11:47:57 +0000 (20:47 +0900)] 
man: fix typo

4 years agounits: adjust description of systemd-update-utmp.service 20058/head
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 11:20:27 +0000 (13:20 +0200)] 
units: adjust description of systemd-update-utmp.service

"Update about" is not gramatically correct. I also think saying "Record" makes
this easier to understand for people who don't necessarilly know what UTMP is.

4 years agocore: supress description in status if same as id
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 11:11:33 +0000 (13:11 +0200)] 
core: supress description in status if same as id

4 years agounits: shorten description of kmod-static-nodes.service
Zbigniew Jędrzejewski-Szmek [Wed, 30 Jun 2021 10:54:31 +0000 (12:54 +0200)] 
units: shorten description of kmod-static-nodes.service

As suggested in
https://github.com/systemd/systemd/pull/20058#pullrequestreview-695023490.

4 years agounits: adjust Descriptions of various units
Zbigniew Jędrzejewski-Szmek [Tue, 29 Jun 2021 07:47:53 +0000 (09:47 +0200)] 
units: adjust Descriptions of various units

In general, it's not very usuful to repeat the unit name as the description.
Especially when the word is a common name and if somebody doesn't understand
the meaning immediately, they are not going to gain anything from the
repeat either, e.g. "halt", "swap".

In the status-unit-format=combined output parentheses are used around
Description, so avoid using parenthesis in the Description itself.

4 years agologind, units: unit Descriptions should be capitalized
Zbigniew Jędrzejewski-Szmek [Tue, 29 Jun 2021 07:29:57 +0000 (09:29 +0200)] 
logind, units: unit Descriptions should be capitalized

4 years agocore: add default descriptions for slices
Zbigniew Jędrzejewski-Szmek [Tue, 29 Jun 2021 07:10:42 +0000 (09:10 +0200)] 
core: add default descriptions for slices

[  OK  ] Created slice system-getty.slice (Slice /system/getty).
[  OK  ] Created slice system-modprobe.slice (Slice /system/modprobe).
[  OK  ] Created slice system-sshd\x2dkeygen.slice (Slice /system/sshd-keygen).
[  OK  ] Created slice user.slice (User and Session Slice).

Before, the first three slices were shown without any description which didn't
look nice.

4 years agocore: rework unit printing and implement 'combined' format
Zbigniew Jędrzejewski-Szmek [Mon, 28 Jun 2021 18:07:15 +0000 (20:07 +0200)] 
core: rework unit printing and implement 'combined' format

The code to print unit status formats had a long history, and became a
hard-to-manage mess of duplicate code parts. We would use sprintf() to
format a string, and then call sprintf() again… The code is reworked
to avoid repeated formattings and to streamline printing to the log
and the console.

The approach used in this patch is a bit more complex then in patches by Colin
Walter and Paweł Marciniak, because an allocation is only done if "combined"
format is used. In other cases we return the existing ->id or ->description
strings. The caller can also control whether a shorter or longer status string
should be used. This way the caller can use a shorter format where it makes
sense, for example in the cylon eye output, where we don't have enough
horizontal space.

Patch is based on Colin Walters' https://github.com/systemd/systemd/pull/15957,
and Paweł Marciniak's patch posted on fedora-devel.

Note: for some reason, the functions for printing of start and stop messages
were sepearated by some unrelated functions. They are moved to be consecutive,
but this makes the much more verbose than it would be otherwise. I found it
useful to view in gitk's "new" mode.

Co-authored-by: Colin Walters <walters@verbum.org>
Co-authored-by: Paweł Marciniak <sunwire+git@gmail.com>
Output from a Fedora Rawhide container boot (w/ some follow-up patches to
tweak Descriptions):

Welcome to Fedora 35 (Rawhide Prerelease)!

Queued start job for default target graphical.target.
[  OK  ] Created slice system-getty.slice - Slice /system/getty.
[  OK  ] Created slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Created slice system-sshd\x2dkeygen.slice - Slice /system/sshd-keygen.
[  OK  ] Created slice user.slice - User and Session Slice.
[  OK  ] Started systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[  OK  ] Reached target cryptsetup.target - Local Encrypted Volumes.
[  OK  ] Reached target paths.target - Path Units.
[  OK  ] Reached target remote-cryptsetup.target - Remote Encrypted Volumes.
[  OK  ] Reached target remote-fs.target - Remote File Systems.
[  OK  ] Reached target slices.target - Slice Units.
[  OK  ] Reached target swap.target - Swaps.
[  OK  ] Reached target veritysetup.target - Local Verity Integrity Protected Volumes.
[  OK  ] Listening on systemd-coredump.socket - Process Core Dump Socket.
[  OK  ] Listening on systemd-initctl.socket - initctl Compatibility Named Pipe.
[  OK  ] Listening on systemd-journald-dev-log.socket - Journal Socket (/dev/log).
[  OK  ] Listening on systemd-journald.socket - Journal Socket.
[  OK  ] Listening on systemd-networkd.socket - Network Service Netlink Socket.
[  OK  ] Listening on systemd-userdbd.socket - User Database Manager Socket.
         Mounting dev-hugepages.mount - Huge Pages File System...
         Starting systemd-journald.service - Journal Service...
         Starting systemd-remount-fs.service - Remount Root and Kernel File Systems...
         Starting systemd-sysctl.service - Apply Kernel Variables...
[  OK  ] Mounted dev-hugepages.mount - Huge Pages File System.
[  OK  ] Finished systemd-remount-fs.service - Remount Root and Kernel File Systems.
         Starting systemd-hwdb-update.service - Rebuild Hardware Database...
         Starting systemd-sysusers.service - Create System Users...
[  OK  ] Finished systemd-sysctl.service - Apply Kernel Variables.
[  OK  ] Started systemd-journald.service - Journal Service.
         Starting systemd-journal-flush.service - Flush Journal to Persistent Storage...
[  OK  ] Finished systemd-sysusers.service - Create System Users.
         Starting systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev...
[  OK  ] Finished systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev.
[  OK  ] Reached target local-fs-pre.target - Preparation for Local File Systems.
[  OK  ] Reached target local-fs.target - Local File Systems.
[  OK  ] Reached target machines.target - Containers.
         Starting dracut-shutdown.service - Restore /run/initramfs on shutdown...
         Starting ldconfig.service - Rebuild Dynamic Linker Cache...
[  OK  ] Finished dracut-shutdown.service - Restore /run/initramfs on shutdown.
[  OK  ] Finished ldconfig.service - Rebuild Dynamic Linker Cache.
[  OK  ] Finished systemd-journal-flush.service - Flush Journal to Persistent Storage.
         Starting systemd-tmpfiles-setup.service - Create Volatile Files and Directories...
[  OK  ] Finished systemd-tmpfiles-setup.service - Create Volatile Files and Directories.
         Starting systemd-journal-catalog-update.service - Rebuild Journal Catalog...
         Starting systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
         Starting systemd-update-utmp.service - Update UTMP about System Boot/Shutdown...
         Starting systemd-userdbd.service - User Database Manager...
[  OK  ] Finished systemd-update-utmp.service - Update UTMP about System Boot/Shutdown.
[  OK  ] Finished systemd-journal-catalog-update.service - Rebuild Journal Catalog.
[  OK  ] Started systemd-userdbd.service - User Database Manager.
[  OK  ] Started systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
[  OK  ] Finished systemd-hwdb-update.service - Rebuild Hardware Database.
         Starting systemd-networkd.service - Network Configuration...
         Starting systemd-update-done.service - Update is Completed...
[  OK  ] Finished systemd-update-done.service - Update is Completed.
[  OK  ] Reached target sysinit.target - System Initialization.
[  OK  ] Started dnf-makecache.timer - dnf makecache --timer.
[  OK  ] Started logrotate.timer - Daily rotation of log files.
[  OK  ] Started systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories.
[  OK  ] Reached target timers.target - Timer Units.
[  OK  ] Listening on dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Reached target sockets.target - Socket Units.
[  OK  ] Reached target basic.target - Basic System.
[  OK  ] Reached target sshd-keygen.target.
         Starting sysstat.service - Resets System Activity Logs...
         Starting systemd-homed.service - Home Area Manager...
         Starting systemd-logind.service - User Login Management...
         Starting dbus-broker.service - D-Bus System Message Bus...
[FAILED] Failed to start sysstat.service - Resets System Activity Logs.
See 'systemctl status sysstat.service' for details.
[  OK  ] Started dbus-broker.service - D-Bus System Message Bus.
[  OK  ] Started systemd-homed.service - Home Area Manager.
[  OK  ] Finished systemd-homed-activate.service - Home Area Activation.
[  OK  ] Started systemd-logind.service - User Login Management.
[  OK  ] Started systemd-networkd.service - Network Configuration.
         Starting systemd-networkd-wait-online.service - Wait for Network to be Configured...
         Starting systemd-resolved.service - Network Name Resolution...
[  OK  ] Started systemd-resolved.service - Network Name Resolution.
[  OK  ] Reached target network.target - Network.
[  OK  ] Reached target nss-lookup.target - Host and Network Name Lookups.
         Starting sshd.service - OpenSSH server daemon...
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Started console-getty.service - Console Getty.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Started sshd.service - OpenSSH server daemon.
[  OK  ] Reached target multi-user.target - Multi-User System.
[  OK  ] Reached target graphical.target - Graphical Interface.
         Starting systemd-update-utmp-runlevel.service - Update UTMP about System Runlevel Changes...
[  OK  ] Finished systemd-update-utmp-runlevel.service - Update UTMP about System Runlevel Changes.

Fedora 35 (Rawhide Prerelease)
Kernel 5.12.12-300.fc34.x86_64 on an x86_64 (console)

rawhide login: [  OK  ] Stopped session-24.scope - Session 24 of User zbyszek.
[  OK  ] Removed slice system-getty.slice - Slice /system/getty.
[  OK  ] Removed slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Removed slice system-sshd\x2dkeygen.slice - Slice /system/sshd-keygen.
[  OK  ] Stopped target graphical.target - Graphical Interface.
[  OK  ] Stopped target multi-user.target - Multi-User System.
[  OK  ] Stopped target getty.target - Login Prompts.
[  OK  ] Stopped target machines.target - Containers.
[  OK  ] Stopped target nss-lookup.target - Host and Network Name Lookups.
[  OK  ] Stopped target remote-cryptsetup.target - Remote Encrypted Volumes.
[  OK  ] Stopped target timers.target - Timer Units.
[  OK  ] Stopped dnf-makecache.timer - dnf makecache --timer.
[  OK  ] Stopped logrotate.timer - Daily rotation of log files.
[  OK  ] Stopped systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories.
[  OK  ] Closed systemd-coredump.socket - Process Core Dump Socket.
         Stopping console-getty.service - Console Getty...
         Stopping dracut-shutdown.service - Restore /run/initramfs on shutdown...
         Stopping sshd.service - OpenSSH server daemon...
         Stopping systemd-logind.service - User Login Management...
         Stopping systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
         Stopping user@1000.service - User Manager for UID 1000...
[  OK  ] Stopped systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
[  OK  ] Stopped systemd-networkd-wait-online.service - Wait for Network to be Configured.
[  OK  ] Stopped sshd.service - OpenSSH server daemon.
[  OK  ] Stopped console-getty.service - Console Getty.
[  OK  ] Stopped dracut-shutdown.service - Restore /run/initramfs on shutdown.
[  OK  ] Stopped target sshd-keygen.target.
[  OK  ] Stopped systemd-logind.service - User Login Management.
[  OK  ] Stopped user@1000.service - User Manager for UID 1000.
         Stopping user-runtime-dir@1000.service - User Runtime Directory /run/user/1000...
[  OK  ] Unmounted run-user-1000.mount - /run/user/1000.
[  OK  ] Stopped user-runtime-dir@1000.service - User Runtime Directory /run/user/1000.
[  OK  ] Removed slice user-1000.slice - User Slice of UID 1000.
         Stopping systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Stopped systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Stopped target network.target - Network.
[  OK  ] Stopped target remote-fs.target - Remote File Systems.
         Stopping systemd-homed-activate.service - Home Area Activation...
         Stopping systemd-resolved.service - Network Name Resolution...
[  OK  ] Stopped systemd-resolved.service - Network Name Resolution.
         Stopping systemd-networkd.service - Network Configuration...
[  OK  ] Stopped systemd-homed-activate.service - Home Area Activation.
         Stopping systemd-homed.service - Home Area Manager...
[  OK  ] Stopped systemd-homed.service - Home Area Manager.
[  OK  ] Stopped target basic.target - Basic System.
[  OK  ] Stopped target paths.target - Path Units.
[  OK  ] Stopped target slices.target - Slice Units.
[  OK  ] Removed slice user.slice - User and Session Slice.
[  OK  ] Stopped target sockets.target - Socket Units.
         Stopping dbus-broker.service - D-Bus System Message Bus...
[  OK  ] Stopped dbus-broker.service - D-Bus System Message Bus.
[  OK  ] Closed dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Stopped target sysinit.target - System Initialization.
[  OK  ] Stopped target cryptsetup.target - Local Encrypted Volumes.
[  OK  ] Stopped systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
[  OK  ] Stopped systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[  OK  ] Stopped target veritysetup.target - Local Verity Integrity Protected Volumes.
[  OK  ] Stopped systemd-update-done.service - Update is Completed.
[  OK  ] Stopped ldconfig.service - Rebuild Dynamic Linker Cache.
[  OK  ] Stopped systemd-hwdb-update.service - Rebuild Hardware Database.
[  OK  ] Stopped systemd-journal-catalog-update.service - Rebuild Journal Catalog.
         Stopping systemd-update-utmp.service - Update UTMP about System Boot/Shutdown...
[  OK  ] Stopped systemd-networkd.service - Network Configuration.
[  OK  ] Closed systemd-networkd.socket - Network Service Netlink Socket.
[  OK  ] Stopped systemd-sysctl.service - Apply Kernel Variables.
[  OK  ] Stopped systemd-update-utmp.service - Update UTMP about System Boot/Shutdown.
[  OK  ] Stopped systemd-tmpfiles-setup.service - Create Volatile Files and Directories.
[  OK  ] Stopped target local-fs.target - Local File Systems.
         Unmounting home.mount - /home...
         Unmounting run-credentials-systemd\x2dsysusers.se…e.mount - /run/credentials/systemd-sysusers.service...
         Unmounting tmp.mount - Temporary Directory /tmp...
[  OK  ] Unmounted home.mount - /home.
[  OK  ] Unmounted tmp.mount - Temporary Directory /tmp.
[  OK  ] Unmounted run-credentials-systemd\x2dsysusers.service.mount - /run/credentials/systemd-sysusers.service.
[  OK  ] Stopped target local-fs-pre.target - Preparation for Local File Systems.
[  OK  ] Stopped target swap.target - Swaps.
[  OK  ] Reached target umount.target - Unmount All Filesystems.
[  OK  ] Stopped systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev.
[  OK  ] Stopped systemd-sysusers.service - Create System Users.
[  OK  ] Stopped systemd-remount-fs.service - Remount Root and Kernel File Systems.
[  OK  ] Reached target shutdown.target - System Shutdown.
[  OK  ] Reached target final.target - Late Boot Services.
[  OK  ] Finished systemd-poweroff.service - System Power Off.
[  OK  ] Reached target poweroff.target - System Power Off.
Sending SIGTERM to remaining processes...
Sending SIGKILL to remaining processes...
All filesystems, swaps, loop devices, MD devices and DM devices detached.
Powering off.

4 years agooomd: check mem free and swap free before doing a swap-based kill 20020/head
Anita Zhang [Thu, 24 Jun 2021 21:58:40 +0000 (14:58 -0700)] 
oomd: check mem free and swap free before doing a swap-based kill

https://bugzilla.redhat.com/show_bug.cgi?id=1974763

4 years agooomd: get memory total and free as part of system context
Anita Zhang [Thu, 24 Jun 2021 10:11:07 +0000 (03:11 -0700)] 
oomd: get memory total and free as part of system context

4 years agooomd: switch system context parsing to use /proc/meminfo
Anita Zhang [Thu, 24 Jun 2021 09:37:57 +0000 (02:37 -0700)] 
oomd: switch system context parsing to use /proc/meminfo

Makes it easier in the next commits to unify on one way to read swap and
memory info.