Commit Graph
54878 Commits
Author SHA1 Message Date
Luca Boccassi 68ee5d774c core: support user manager with Condition[Memory/CPU/IO]Pressure
Get the cgroup root path from the current PID, so that when
ran by the user manager we can get to the right path.
Eg: foo.slice:10% will check under:

/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/foo.slice/cpu.pressure

Follow-up for 81513b382b
2021-12-02 11:21:06 +00:00
Yu Watanabe 8feb9fa4f8 Merge pull request #21584 from yuwata/network-wireguard-cleanups
network: cleanups for wireguard
2021-12-02 15:53:57 +09:00
Yu Watanabe 4a410adae6 Revert "network: address: drop deprecated temporary address"
This reverts commit 528da64a0c.

The commit is a bad way to fix #19838, and introduces #21593.

Fixes #21593.
2021-12-02 15:41:45 +09:00
Yu Watanabe 38ef464e41 network/wireguard: search valid address of the endpoint from all struct addrinfo entries 2021-12-02 08:39:37 +09:00
Yu Watanabe 8bf7e3b61c network/wireguard: cleanups for resolving endpoints
This makes
- drop peers_with_unresolved_endpoint and peers_with_failed_endpoint,
- drop destroy handler for sd_resolve_query, and manage each query by peer,
- add random fluctuation to the timeout for retry handler,
- retry timer event source is now managed by peer,
- use sd_event_source_disable_unref().
2021-12-02 08:39:32 +09:00
Yu Watanabe 4a897d29f1 network/wireguard: do not resolve Endpoint= if an IP address is specified
Also verify the domain name and port.
2021-12-02 08:36:22 +09:00
Yu Watanabe 4c9bb70854 parse-util: refuse leading white space in port number
When parse_ip_port() is directly used in a conf parser, then that's
fine, as the rvalue is already truncated.

When parse_ip_port() is used when e.g. parsing IP address with port,
then we should really refuse white space after colon.
2021-12-02 08:36:22 +09:00
Yu Watanabe bf1e65a4fd Merge pull request #21585 from yuwata/network-radv-uplink-interface-auto-with-dhcp6-pd
network: cleanups for uplink interface handling for RADV and DHCP6-PD
2021-12-02 08:16:23 +09:00
Yu Watanabe 9db6a416dd Merge pull request #21583 from bluca/bpf_assert
cgroup: don't emit BPF firewall warning when manager is in test mode
2021-12-02 07:47:17 +09:00
Luca Boccassi 6b88743c22 Merge pull request #21591 from yuwata/core-bpf-firewall-unsupported-reason
core/bpf-firewall: make bpf_firewall_supported() always set unsupport…
2021-12-01 21:20:30 +00:00
Luca Boccassi 541b127170 elf-util: do not ignore prctl() errors
We want to avoid loops, so fail and return if we can't disable
core dumping

CID#1467004
2021-12-01 16:00:26 +00:00
Yu Watanabe a783421498 tree-wide: fix typo 2021-12-02 00:51:02 +09:00
KennthStailey 2ed6297f71 Fixed typo
`ip set dev eth0` should be `ip link set dev eth0`
2021-12-02 00:02:37 +09:00
Yu Watanabe 8751bb6f5e core/bpf-firewall: make bpf_firewall_supported() always set unsupported reason when BPF_FIREWALL_UNSUPPORTED is returned
Otherwise, log_unit_full_errno() in emit_bpf_firewall_warning() will
trigger an assertion.
2021-12-01 21:39:21 +09:00
Yu Watanabe ad13559e8d core/cgroup: propagate errors on detecting supported features 2021-12-01 21:39:21 +09:00
Yu Watanabe 3de3fd3d16 core/restrict-netif: make restrict_network_interfaces_supported() return negative errno only when critical error
Other errors are handled as the functionality is not supported.

This also drops unnecessary SYNTHETIC_ERRNO().
2021-12-01 21:38:54 +09:00
Luca Boccassi cb94244406 test: run commands with debug level logs in TEST-65-ANALYZE 2021-12-01 12:06:36 +00:00
Luca Boccassi a42232a18c cgroup: don't emit BPF firewall warning when manager is in test mode
Support for BPF might not have been checked, since it's not necessary
in test mode (eg: running offline analysis of units). This causes an
assert:

Assertion '(_error) != 0' failed at src/core/bpf-firewall.c:914, function emit_bpf_firewall_warning(). Aborting.

Export SYSTEMD_LOG_LEVEl=debug in TEST-65-ANALYZE is enough to trigger
this assert while doing an offline analysis of a unit that has some
firewall/network restrictions set.

Skip the warning if the manager is in test mode.
2021-12-01 12:06:36 +00:00
Yu Watanabe 6016f1cfbb test-network: re-arrange DHCP6-PD subnet IDs to test searching free subnet ID 2021-12-01 20:35:03 +09:00
Yu Watanabe 6c8d6bdd40 test-network: add testcases for uplink interface detection for RADV with DHCPv6-PD 2021-12-01 20:35:03 +09:00
Yu Watanabe 1a4ca0e2f3 network: dhcp6-pd: exclude all explicitly specified subnet IDs when searching free IDs
When the upstream link gained a lease, then several downstream links may
not appear yet. Previously, the explicitly specified subnet ID for a
downstream link which appears later may be already assigned to an
interface which does not request specific subnet ID.

To avoid such situation, this makes all specified IDs are excluded when
searching free IDs.

As a side effect, we can avoid the second call of
dhcp6_pd_distribute_prefix().
2021-12-01 20:35:03 +09:00
Yu Watanabe a74229c58e network: dhcp6-pd: introduce dhcp6_pd_is_uplink()
This also merges dhcp6_pd_resolve_uplink() with dhcp6_pd_find_uplink()
2021-12-01 20:35:03 +09:00
Yu Watanabe 926fc8ee63 network: dhcp6: make UplinkInterface=:self take effect only when DHCPv6PrefixDelegation= is enabled 2021-12-01 20:35:03 +09:00
Yu Watanabe f6032ff3e0 network: radv: use the uplink interface used in DHCPv6-PD 2021-12-01 20:35:03 +09:00
Arvid E. Picciani 312dac2869 docs: document that systemd closes console during normal runtime
fixes #21451

Signed-off-by: Arvid E. Picciani <aep@exys.org>
2021-12-01 10:16:15 +01:00
Luca Boccassi 81513b382b core: add Condition[Memory/CPU/IO]Pressure
By default checks PSI on /proc/pressure, and causes a unit to be skipped
if the threshold is above the given configuration for the avg300
measurement.
Also allow to pass a custom timespan, and a particular slice unit to
check under.

Fixes #20139
2021-12-01 09:53:18 +01:00
Yu Watanabe 99f8a6d7f5 Merge pull request #21581 from keszybz/really-random-fixlets
Really random fixlets
2021-12-01 12:54:00 +09:00
Yu Watanabe 361bf5fb77 Merge pull request #21564 from yuwata/errno-eagain-eintr
tree-wide: introduce ERRNO_IS_TRANSIENT() and use it
2021-12-01 12:52:27 +09:00
Yu Watanabe db58f6a933 Merge pull request #21536 from medhefgo/test
test: Introduce TEST_RET macro
2021-12-01 12:52:10 +09:00
Yu Watanabe c8cbe8e0eb Merge pull request #21288 from loongarch64/la64/main
Add support for the LoongArch architecture.
2021-12-01 12:51:48 +09:00
Luca Boccassi c7b5d3b5e4 Merge pull request #21553 from yuwata/network-wireguard-add-routes-to-allowed-ips
network: wireguard: add routes to AllowedIPs=
2021-11-30 23:30:31 +00:00
Zbigniew Jędrzejewski-Szmek 160dadc035 tmpfiles: 'st' may have been used uninitialized 2021-11-30 22:57:31 +01:00
Zbigniew Jędrzejewski-Szmek baf60a80b5 man: prettify line number handling in python example
This way the 'line_number' variable contains the actual line number as we think
of it, instead of adjusting it on output.
2021-11-30 22:56:51 +01:00
Zbigniew Jędrzejewski-Szmek 75c293f37d test-sizeof: show stack and heap randomization
It's useful to reassure yourself those those things actually work ;)
2021-11-30 22:55:15 +01:00
Zbigniew Jędrzejewski-Szmek 4248b9f6a5 Merge pull request #21580 from bluca/core_fork
Switch coredump ELF parsing to fork+dlopen
2021-11-30 21:49:53 +01:00
Yu Watanabe 6387cac3f3 test-network: add tests for creating routes to wireguard's AllowedIPs= 2021-12-01 04:00:16 +09:00
Yu Watanabe e908434458 network: wireguard: automatically configure routes to addresses specified in AllowedIPs=
Closes #14176.
2021-12-01 04:00:11 +09:00
Yu Watanabe 28870a9d2e network: route: expose route_hash_ops 2021-12-01 03:56:00 +09:00
Yu Watanabe 9e11bd58fb network/wireguard: drop unnecessary .in6 specifier
This should not change any behavior, as the size of the IPv4 address is
smaller than IPv6.
2021-12-01 03:56:00 +09:00
Yu Watanabe 5e82a61375 network: route: read RTA_TABLE attribute to get route table
If the table of a route is larger than 255, then the value is stored in
RTA_TABLE attribute. But the attribute is not supported by old kernels.
So, first try to read the value from RTA_TABLE attribute, then fallback
to the value in the message header.
2021-12-01 03:53:09 +09:00
Yu Watanabe af31670340 network: route: use typesafe function 2021-12-01 03:52:11 +09:00
Zbigniew Jędrzejewski-Szmek 5f1d6ebd2a oomd: use type suffix instead of casting
The end result is the same.
2021-11-30 18:42:47 +01:00
Yu Watanabe 528da64a0c network: address: drop deprecated temporary address
Fixes #19838.
2021-11-30 18:17:23 +01:00
Luca Boccassi d2d8bd3a17 TODO: update dlopen todo list 2021-11-30 16:49:59 +00:00
Luca Boccassi 56f2a72919 elf-util: switch libelf/libdw to dlopen()
In order to avoid inflating the dependency list for the core
library, use dlopen when inspecting elfs, since it's only
used in two non-core executables.
2021-11-30 16:49:59 +00:00
Luca Boccassi 5361f62d6d meson: remove libdw dependency from pstore
systemd-pstore does not use any symbol from libdw, and never did,
but the dependency was listed since the beginning
2021-11-30 16:49:59 +00:00
Luca Boccassi 889f252973 elf-util: add stub for builds without libdw 2021-11-30 16:49:59 +00:00
Luca Boccassi 5564c6d802 elf-util: split out helper to parse build-id 2021-11-30 16:49:59 +00:00
Luca Boccassi ea680f0524 coredump: move elf parsing utilities to src/shared/elf-util 2021-11-30 16:49:59 +00:00
Luca Boccassi f05b5cddfb coredump: always log on failure in parse_core() 2021-11-30 16:49:58 +00:00