]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
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 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 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.

4 years agohwdb: add accel matrix for One-netbook OneMix 2s
laineantti [Tue, 29 Jun 2021 20:51:58 +0000 (23:51 +0300)] 
hwdb: add accel matrix for One-netbook OneMix 2s

4 years agoImprove tmpfiles unsafe transition log message (#20048)
Albert Brox [Wed, 30 Jun 2021 09:54:15 +0000 (05:54 -0400)] 
Improve tmpfiles unsafe transition log message (#20048)

4 years agoman: document ip proto in SocketBind{Allow|Deny}= 20021/head
Julia Kartseva [Thu, 24 Jun 2021 19:16:51 +0000 (12:16 -0700)] 
man: document ip proto in SocketBind{Allow|Deny}=

4 years agodbus: extend SocketBind{Allow|Deny}= with ip proto
Julia Kartseva [Wed, 23 Jun 2021 23:37:53 +0000 (16:37 -0700)] 
dbus: extend SocketBind{Allow|Deny}= with ip proto

4 years agofragment: add ip protocol to SocketBind{Allow|Deny}=
Julia Kartseva [Tue, 15 Jun 2021 02:14:14 +0000 (19:14 -0700)] 
fragment: add ip protocol to SocketBind{Allow|Deny}=

Add ip protocol token to SocketBind{Allow|Deny}= property parser.

Use parse_socket_bind_item helper.

Replace int32_t with int in cgroup item for socket-bind as it was
requested in [0].

Update tests.

[0] https://github.com/systemd/systemd/pull/19942#discussion_r652150024

4 years agoshared: add parser for SocketBind{Allow|Deny}=
Julia Kartseva [Tue, 29 Jun 2021 23:04:32 +0000 (16:04 -0700)] 
shared: add parser for SocketBind{Allow|Deny}=

Parse address family, ip protocol and ports, any of them can be
optional. If neither is specified, a special value 'any' is expected.
Helper is placed in shared to be reused in both fragment and dbus.
Add unit tests with valid and invalid examples.

4 years agoshared: add ip_protocol_{from|to}_tcp_udp helpers
Julia Kartseva [Sat, 26 Jun 2021 00:14:40 +0000 (17:14 -0700)] 
shared: add ip_protocol_{from|to}_tcp_udp helpers

Thin wrappers of ip_protocol_{from|to}_name targeting IPPROTO_TCP and
IPPROTO_UDP only.
Used to parse IP protocol configuration restricted only to TCP and UDP,
e.g. in SocketBind{Allow|Deny}= unit property.

These helpers are inspired by af_{from|to}_ipv4_ipv6 and potentially
extendable with other IP protocols if there is a use-case to expose
them.

4 years agobpf: add ip proto matching to socket-bind prog
Julia Kartseva [Sat, 12 Jun 2021 01:27:27 +0000 (18:27 -0700)] 
bpf: add ip proto matching to socket-bind prog

Lookup ip protocol in a socket address to allow or deny binding a socket
to the address.
Matching rule is extended with 'protocol' field. If its value is 0
(IPPROTO_IP) ip protocol comparison is omitted and matching is passed to
the next token which is ip ports.

Documentation is updated.

4 years agoAdd systemd-resolve backwards compatibility section to resolvectl docs
Dan Streetman [Tue, 29 Jun 2021 10:29:53 +0000 (06:29 -0400)] 
Add systemd-resolve backwards compatibility section to resolvectl docs

4 years agoMerge pull request #20047 from keszybz/doc-fix
Luca Boccassi [Tue, 29 Jun 2021 11:52:38 +0000 (12:52 +0100)] 
Merge pull request #20047 from keszybz/doc-fix

Update dnssec-trust-anchors comment syntax description and put rrs in index

4 years agoresolved: Fix link to resolv.conf manpage
Raul Tambre [Tue, 29 Jun 2021 08:49:56 +0000 (11:49 +0300)] 
resolved: Fix link to resolv.conf manpage

Seems to typically located in volume 5 these days on Linux systems that systemd targets.

4 years agoresolved: do not try to copy empty NSEC types bitmaps
Alexander Tsoy [Mon, 28 Jun 2021 20:00:11 +0000 (23:00 +0300)] 
resolved: do not try to copy empty NSEC types bitmaps

dns_resource_record_copy() assumes that NSEC types bitmap is non-empty
which results in a null pointer dereference inside bitmap_copy() in some
cases. Fix this by calling bitmap_copy() conditionally.

4 years agoman: add "DNS resource record types" section 20047/head
Zbigniew Jędrzejewski-Szmek [Sun, 27 Jun 2021 14:33:12 +0000 (16:33 +0200)] 
man: add "DNS resource record types" section

4 years agoman: add markup to dns resource record labels
Zbigniew Jędrzejewski-Szmek [Sun, 27 Jun 2021 14:20:38 +0000 (16:20 +0200)] 
man: add markup to dns resource record labels

4 years agoMerge pull request #20039 from yuwata/sd-device-get-sysattr-value-embedded-nul
Franck Bui [Mon, 28 Jun 2021 13:43:29 +0000 (15:43 +0200)] 
Merge pull request #20039 from yuwata/sd-device-get-sysattr-value-embedded-nul

sd-device: allow to read sysattr which contains embedded NUL

4 years agoman: Don't link to a manpage that's within our documentation
Raul Tambre [Mon, 28 Jun 2021 09:44:22 +0000 (12:44 +0300)] 
man: Don't link to a manpage that's within our documentation

For example on systemd.network this results in the link taking one to another site with the manpage instead of the document that's on the same site.

4 years agoMerge pull request #20043 from yuwata/sd-netlink-cleanups
Luca Boccassi [Mon, 28 Jun 2021 09:35:34 +0000 (10:35 +0100)] 
Merge pull request #20043 from yuwata/sd-netlink-cleanups

sd-netlink: several trivial cleanups

4 years agoman/dnssec-trust-anchors: update comment syntax description
Zbigniew Jędrzejewski-Szmek [Sun, 27 Jun 2021 13:49:28 +0000 (15:49 +0200)] 
man/dnssec-trust-anchors: update comment syntax description

Let's just use the same phrase as in systemd.syntax(7).
Fixes #20045.

4 years agoman: fix incorrect description regarding DynamicUser= and StateDirectory=
dgcampea [Sat, 26 Jun 2021 12:23:20 +0000 (13:23 +0100)] 
man: fix incorrect description regarding DynamicUser= and StateDirectory=

4 years agoMerge pull request #20042 from yuwata/udev-rule-fix-cid-1457766
Luca Boccassi [Sat, 26 Jun 2021 22:03:36 +0000 (23:03 +0100)] 
Merge pull request #20042 from yuwata/udev-rule-fix-cid-1457766

udev: fix an issue and add a testcase

4 years agosd-netlink: use usec_sub_unsigned() and USEC_INFINITY 20043/head
Yu Watanabe [Sat, 26 Jun 2021 18:31:52 +0000 (03:31 +0900)] 
sd-netlink: use usec_sub_unsigned() and USEC_INFINITY

And shorten code more.

4 years agosd-netlink: shorten code a bit
Yu Watanabe [Sat, 26 Jun 2021 18:28:16 +0000 (03:28 +0900)] 
sd-netlink: shorten code a bit

This also reduces scope of variables, fixes and reduces indentations,
drop unnecessary initializations.

4 years agosd-netlink: do not call lookup_nlmsg_type() for known generic netlink family
Yu Watanabe [Sat, 26 Jun 2021 18:58:30 +0000 (03:58 +0900)] 
sd-netlink: do not call lookup_nlmsg_type() for known generic netlink family

4 years agosd-netlink: rename variables and functions for generic netlink
Yu Watanabe [Sat, 26 Jun 2021 18:00:42 +0000 (03:00 +0900)] 
sd-netlink: rename variables and functions for generic netlink

`id` or `type` is ambiguous. Let's use `nlmsg_type`. Also, use `ret` for
function arguments to store results.

This also adds several assertions.

4 years agosd-netlink: do not trigger assertion by calling socket_broadcast_group_unref() with...
Yu Watanabe [Sat, 26 Jun 2021 17:30:52 +0000 (02:30 +0900)] 
sd-netlink: do not trigger assertion by calling socket_broadcast_group_unref() with an arbitrary group number

socket_broadcast_group_unref() is only called in netlink_slot_disconnect(),
so the assertion should not be triggered as the match slot was
successfully created.

But, we usually design `_ref/unref()` functions as they can be called
for any inputs. So, let's also follow the design rule here.

4 years agosd-netlink: shorten code a bit
Yu Watanabe [Sat, 26 Jun 2021 17:28:14 +0000 (02:28 +0900)] 
sd-netlink: shorten code a bit

This also fixes comments, a log message, and coding style nits.

4 years agoudev-test: add a testcase for string_escape=replace 20042/head
Yu Watanabe [Sat, 26 Jun 2021 15:02:24 +0000 (00:02 +0900)] 
udev-test: add a testcase for string_escape=replace

4 years agoudev: reduce scope of variables
Yu Watanabe [Sat, 26 Jun 2021 14:52:33 +0000 (23:52 +0900)] 
udev: reduce scope of variables

Then, hopefully, we can easily find the bug fixed by the previous
commit.

4 years agoudev: fix use of invalid pointer
Yu Watanabe [Sat, 26 Jun 2021 14:34:59 +0000 (23:34 +0900)] 
udev: fix use of invalid pointer

Fixes a bug introduced by ea0f4578a7e90f5227817058bfb11bb91dbb1431.

Fixes CID#1457766.

4 years agocore/namespace: drop unnecessary initializations
Yu Watanabe [Fri, 25 Jun 2021 19:33:13 +0000 (04:33 +0900)] 
core/namespace: drop unnecessary initializations

4 years agoudev: update log messages
Yu Watanabe [Fri, 25 Jun 2021 18:01:26 +0000 (03:01 +0900)] 
udev: update log messages

Suggested at https://github.com/systemd/systemd/pull/19312#discussion_r658556983.

4 years agosd-device: allow to read sysattr which contains embedded NUL 20039/head
Yu Watanabe [Sat, 26 Jun 2021 01:40:07 +0000 (10:40 +0900)] 
sd-device: allow to read sysattr which contains embedded NUL

This effectively reverts the commit 2a394d0bf2f0afd8b9ed5faeb33f23459e3c6504.

But drop trailing '\r' of the read value, as sd_device_set_sysattr_value() drops it.

Fixes #20025.

4 years agonetworkctl: drop unused member in struct VxLanInfo
Yu Watanabe [Fri, 25 Jun 2021 16:06:38 +0000 (01:06 +0900)] 
networkctl: drop unused member in struct VxLanInfo

4 years agoMerge pull request #20028 from keszybz/hwdb-update-v249 v249-rc2
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 14:17:20 +0000 (16:17 +0200)] 
Merge pull request #20028 from keszybz/hwdb-update-v249

Hwdb update for v249-rc2

4 years agoman: document about NAMING_REPLACE_STRICTLY network interface naming policy
Yu Watanabe [Fri, 25 Jun 2021 12:56:53 +0000 (21:56 +0900)] 
man: document about NAMING_REPLACE_STRICTLY network interface naming policy

Follow-up for b4d885f0e861b2d1bb5a62311c61a96f5222b026 and
068b0f77289411ef9f92f5d701759e98145a06e4.

4 years agoNEWS: mention MS_NOSUID for namespaced services by default
Luca Boccassi [Fri, 25 Jun 2021 13:04:34 +0000 (14:04 +0100)] 
NEWS: mention MS_NOSUID for namespaced services by default

4 years agoNEWS: update contributor list for v249-rc2
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 12:25:28 +0000 (14:25 +0200)] 
NEWS: update contributor list for v249-rc2

4 years agoNEWS: update with net-naming scheme changes and ConditionOSRelease
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 12:19:26 +0000 (14:19 +0200)] 
NEWS: update with net-naming scheme changes and ConditionOSRelease

4 years agohwdb: update autosuspend 20028/head
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 12:22:52 +0000 (14:22 +0200)] 
hwdb: update autosuspend

4 years agohwdb: update
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 12:22:14 +0000 (14:22 +0200)] 
hwdb: update

4 years agodbus-socket: fix check of Listen* arguments
Zbigniew Jędrzejewski-Szmek [Wed, 23 Jun 2021 16:10:57 +0000 (18:10 +0200)] 
dbus-socket: fix check of Listen* arguments

We checked the wrong field, which was always NULL here, so we would always
reject the assignment. We would also print the wrong string in the error
message:

$ sudo systemd-run --socket-property ListenFIFO=/tmp/fifo3 cat
Failed to start transient socket unit: Invalid socket path: FIFO

4 years agoMerge pull request #20023 from yuwata/re-enable-nosuid-mount-flag
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 12:21:05 +0000 (14:21 +0200)] 
Merge pull request #20023 from yuwata/re-enable-nosuid-mount-flag

core: reenable nosuid mount flag when NoNewPrivileges=yes

4 years agoremove a left-over break
David Tardon [Fri, 25 Jun 2021 08:42:53 +0000 (10:42 +0200)] 
remove a left-over break

By the "same logic as above...", we want to continue to fallback here,
but the break prohibits that.

This is a follow-up for ee1aa61c4710ae567a2b844e0f0bb8cb0456ab8c .

4 years agoExtensionImages: log explicit error when extension-release metadata does not match
Luca Boccassi [Tue, 22 Jun 2021 21:59:40 +0000 (22:59 +0100)] 
ExtensionImages: log explicit error when extension-release metadata does not match

When an ExtensionImages= extension-release metadata does not match, the
log messages (unless debug level is set) are pretty much incomprehensible:

systemd[463]: run-u11.service: Failed to set up mount namespacing: /run/systemd/unit-extensions/0: Stale file handle
systemd[463]: run-u11.service: Failed at step NAMESPACE spawning /usr/bin/echo: Stale file handle

Add an explicit log message if we get ESTALE from the dissect code, to
make it clear what's happening without needing to enable debugging:

systemd[463]: Failed to mount image /tmp/app3.raw, extension-release metadata does not match the lower layer's: ID=debian VERSION_ID=11 SYSEXT_LEVEL=11

4 years agoudev/scsi: use the scsi device type number directly
Yu Watanabe [Fri, 25 Jun 2021 06:04:12 +0000 (15:04 +0900)] 
udev/scsi: use the scsi device type number directly

Previously, the value is once stringified, and later again parsed,
that is completely redundant.

Follow-up for 1001167ca5e4cfdc6230562e4fb9029e5f624d53.

Replaces #20013.

4 years agoresolvectl: Only strip ifname suffixes when being resolvconf
Mike Crowe [Thu, 24 Jun 2021 14:25:58 +0000 (15:25 +0100)] 
resolvectl: Only strip ifname suffixes when being resolvconf

Only treat interface names containing dots specially when resolvectl is
pretending to be resolvconf to fix
https://github.com/systemd/systemd/issues/20014 .

Move the special suffix-stripping behaviour of ifname_mangle out to the
new ifname_resolvconf_mangle to be called from resolvconf only.

4 years agoMerge pull request #19312 from yuwata/udev-escape-slash-nvme
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 08:11:04 +0000 (10:11 +0200)] 
Merge pull request #19312 from yuwata/udev-escape-slash-nvme

udev: make OPTIONS="string_escape=replace" take effect on ENV{key}= assiginment

4 years agoMerge pull request #19883 from ddstreet/activation-policy-down-required-for-online-no
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 07:26:25 +0000 (09:26 +0200)] 
Merge pull request #19883 from ddstreet/activation-policy-down-required-for-online-no

Activation policy down required for online no

4 years agoMerge pull request #19941 from bluca/condition_os_release
Zbigniew Jędrzejewski-Szmek [Fri, 25 Jun 2021 07:22:50 +0000 (09:22 +0200)] 
Merge pull request #19941 from bluca/condition_os_release

core: add ConditionOSRelease= directive

4 years agocore: do not set nosuid mount option when SELinux is enabled 20023/head
Yu Watanabe [Fri, 25 Jun 2021 06:30:13 +0000 (15:30 +0900)] 
core: do not set nosuid mount option when SELinux is enabled

The mount option has special meaning when SELinux is enabled. To make
NoNewPrivileges=yes not break SELinux enabled systems, let's not set the
mount flag on such systems.

4 years agoRevert "Revert "Mount all fs nosuid when NoNewPrivileges=yes""
Yu Watanabe [Fri, 25 Jun 2021 06:16:34 +0000 (15:16 +0900)] 
Revert "Revert "Mount all fs nosuid when NoNewPrivileges=yes""

This reverts commit 1753d3021564671fba3d3196a84da657d15fb632.

Let's re-enable that feature now. As reported when the original commit
was merged, this causes some trouble on SELinux enabled systems. So,
in the subsequent commit, the feature will be disabled when SELinux is enabled.
But, anyway, this commit just re-enable that feature unconditionally.