Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe 5e48fd0506 network/tunnel: allow Local=/Remote=any for all tunnel types
It seems there is no restriction for local and remote addresses.

Fixes #34930.
2024-10-30 10:29:07 +01:00
Yu Watanabe 7e322c3dd0 sd-netlink,network: do not set NLM_F_CREATE and NLM_F_EXCL flags if an interface index is specified
If an ifindex is specified, we are modifying the existing interface.
Hence, these flags should not be set. Otherwise, the request will be
refused with -EEXIST.
2024-10-30 10:28:18 +01:00
Yu Watanabe 1003093604 network/netdev: skip processing netdev if it is already detached
No functional change, as currently networkd detaches NetDev objects only
on stop (or invalid .netdev file is loaded).
Preparation for later commits.
2024-10-30 03:07:32 +09:00
Yu Watanabe 3252a1f274 network/netdev: split out netdev_attach_name_full()
No functional change, preparation for later commits.
2024-10-30 03:07:32 +09:00
Yu Watanabe f27ae592f7 update-utmp: wait slightly longer for the private bus socket being active
Before a339495b1d, update-utmp typically
connects the public DBus socket when disconnected from the private DBus
socket, as dbus service should be active even during PID1 is being reexecuted.

However, after a339495b1d, update-utmp
tries to connect only the private DBus socket, but reexecution of PID1
may be slow, hence all trials may fail when the reexecution is slow.

With this change, now it waits for 100ms to 2000ms, so in total it waits
about 37 seconds in average, previously about 4 seconds.
2024-10-29 08:43:21 +09:00
Yu Watanabe feb9ccb56e Merge pull request #34633 from keszybz/sd-json-enum-formatting
Add sd_json_format_enabled() helper
2024-10-29 03:29:03 +09:00
Yu Watanabe 3499e87885 Merge pull request #34806 from ryantimwilson/protect-control-groups
cgroup: Add support for ProtectControlGroups= private and strict
2024-10-29 02:53:11 +09:00
Yu Watanabe 99b76684d7 Merge pull request #34902 from ryantimwilson/root-dir-not-exists-error
core: Add RootDirectory= path to error message if directory does not exist
2024-10-27 13:49:05 +09:00
Yu Watanabe 7354936ef7 core/cgroup: rename CGROUP_PRESSURE_WATCH_ON/OFF -> CGROUP_PRESSURE_WATCH_YES/NO
No functional change, but let's print yes/no rather than on/off in systemd-analyze.

Similar to 2e8a581b9c and
edd3f4d9b7.
(Note, the commit messages of those commits are wrong, as
 parse_boolean() supports on/off anyway.)
2024-10-27 03:04:35 +09:00
Yu Watanabe 5dc0668802 sd-event: fix memleak when built without assertion
Fixes a bug introduced by baf3fdec27.

This also adds several assertions at the beginning of the function.

Fixes #34899.
2024-10-26 17:21:34 +02:00
Yu Watanabe ddeb701b55 man: fix typo
Follow-up for 115fac3c29.
2024-10-26 14:00:38 +09:00
Yu Watanabe f7804c1aa2 basic/missing: add short comment about when CLONE_NEWCGROUP is added 2024-10-26 13:59:19 +09:00
Yu Watanabe f7078de515 Merge pull request #34884 from poettering/run0-disconnect-fix
run: reconnect if our dbus connection is terminated
2024-10-26 02:50:48 +09:00
Yu Watanabe 6d6048b4cb Merge pull request #34881 from poettering/run0-ui-tweaks
run0: various UI tweaks
2024-10-26 02:49:48 +09:00
Yu Watanabe e7c567cc78 man: insert a comma before 'and'
Follow-up for bd91f23acf.
2024-10-24 16:42:59 +09:00
Yu Watanabe 81d1fcce97 Merge pull request #27916 from yuwata/test-execute-credstore
test: update permission of credstore
2024-10-24 16:34:49 +09:00
Yu Watanabe 4e83ac4029 Revert "TEST-55-OOMD: workaround for kernel regression in 6.12-rcX"
This reverts commit 88bbf187a9.

The kernel regression has been hopefully fixed by
https://github.com/torvalds/linux/commit/c6508124193d42bbc3224571eb75bfa4c1821fbb
which is included in 6.12-rc4.
Let's drop the workaround.
2024-10-24 09:10:15 +02:00
Yu Watanabe 491c903dbe man/network: suggest to not request IA_NA when received RA with Managed bit unset
Follow-up for 1f5a052963.
2024-10-24 05:32:40 +09:00
Yu Watanabe 228e26ba03 Merge pull request #34834 from yuwata/protect-home-tmpfs-read-only
core/namespace: make ProtectHome=tmpfs makes /home and friends read-only as documented
2024-10-24 05:32:12 +09:00
Yu Watanabe 5811a0117c core/namespace: replace MOUNT_PRIVATE_TMP_READ_ONLY with MOUNT_PRIVATE_TMP with .read_only = true 2024-10-24 03:05:06 +09:00
Yu Watanabe d69ee5acdc core/namespace: coding style cleanups 2024-10-24 03:05:06 +09:00
Yu Watanabe 0cc496b2d2 core/namespace: honor MountEntry.read_only, .options, and so on in static entries
Otherwise, ProtectHome=tmpfs makes /home/ and friends not read-only.
Also, mount options for /run/ specified in MountAPIVFS=yes are not
applied.

The function append_static_mounts() was introduced in
5327c910d2, but at that time, there were
neither .read_only nor .options in the struct. But, when later the
struct is extended, the function was not updated and they were not
copied from the static table.
The fields has been used in static tables since
e4da7d8c79, and also in
94293d65cd.

Fixes #34825.
2024-10-24 02:59:46 +09:00
Yu Watanabe 967c586e9c man/network: fix typo
Follow-up for 1f5a052963.
2024-10-23 17:25:37 +09:00
Yu Watanabe f0b974050d measure: fix typo
Follow-up for 0005411352.
2024-10-23 17:25:37 +09:00
Yu Watanabe 82d8a2c810 TEST-55-OOMD: fix typo
Follow-up for 63d4c4271c.
2024-10-23 17:25:37 +09:00
Yu Watanabe aa7507ea4a TEST-02-UNITTESTS: reuse $TEST_MATCH_SUBTEST to specify unit tests to be run
Then, we can easily test specific unit tests in qemu or container.
2024-10-22 20:14:33 +09:00
Yu Watanabe c443f6924f test-execute: update permission of credstore
Follow-up for 40fb9eebbc.
2024-10-22 20:14:33 +09:00
Yu Watanabe 1f5a052963 man: suggest to use DHCPv6Client= when upstream provides RA with the Managed bit unset
Follow-up for daf9f42f91.
2024-10-22 04:35:03 +09:00
Yu Watanabe 5ff567f74f network/dhcp6: do not request IA_PD when running in the other-information mode
This reverts the following commits:
- 180cc5421d
  "sd-dhcp6-client: allow to request IA_PD on information requesting mode"
- cf7a403e47
  "sd-dhcp6-lease: adjust information refresh time with lifetime of IA_PD"
- 1918eda30d
  "network/dhcp6: process hostname and IA_PD on information requesting mode"

As per discussion in #34299,
https://github.com/systemd/systemd/issues/34299#issuecomment-2425153221
the offending commits violate RFC 8415 section 18.2.6:
> The client uses an Information-request message to obtain
> configuration information without having addresses and/or delegated
> prefixes assigned to it.
2024-10-22 04:34:50 +09:00
Yu Watanabe 88bbf187a9 TEST-55-OOMD: workaround for kernel regression in 6.12-rcX
This ignore failures when running on kernel-6.12-rcX, which has a
regression in the kernel scheduler that breaks PSI.

From https://github.com/systemd/systemd/issues/32730#issuecomment-2415312260
> There is a known scheduler bug in 6.12 that breaks psi. It leaks
> "running tasks" counts, which matches your symptoms of seeing partial
> pressure only.
>
> Do you see "inconsistent task state" warnings in dmesg | grep psi?
>
> A fix is queued in the scheduler tree, should be sent to Linus shortly:
> https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=c6508124193d42bbc3224571eb75bfa4c1821fbb

Workaround for #32730.
2024-10-19 12:34:48 +09:00
Yu Watanabe 12e58ab18d Merge pull request #34820 from poettering/dissect-image-uclean
dissect-image: generate better log message for EUCLEAN dissect error
2024-10-19 02:15:01 +09:00
Yu Watanabe 5df9ebad70 Merge pull request #34597 from ryantimwilson/oomd-pressure-duration
Add ManagedOOMMemoryPressureDurationSec override setting for units
2024-10-17 14:30:13 +09:00
Yu Watanabe 4ce436fccf Merge pull request #34797 from yuwata/test-mount
TEST-60: several cleanups and potential performance improvement
2024-10-17 07:23:36 +09:00
Yu Watanabe 73970cdcd1 TEST-60-MOUNT-RATELIMIT: disable journal ratelimiting
Otherwise, journal check in testcase_mount_ratelimit() may fail and we
need to wait 2 minutes.
2024-10-17 01:53:45 +09:00
Yu Watanabe 805d0eed0b TEST-60-MOUNT-RATEMINIT: split into small test cases
Then, use run_testcases().
2024-10-17 01:53:45 +09:00
Yu Watanabe c5928a7684 TEST-60-MOUNT-RATELIMIT: wait for mount unit being started or stopped 2024-10-17 01:53:45 +09:00
Yu Watanabe cadb074b9c Merge pull request #34793 from yuwata/journalctl-copy-arguments
journalctl: copy arguments
2024-10-17 01:52:03 +09:00
Yu Watanabe 23615aca62 doc: fix typo
Follow-up for b3b7cf8b7c.
2024-10-17 00:49:59 +09:00
Yu Watanabe cd4b71b861 machine: fix typo
Follow-up for ad0d4f9a4c.
2024-10-17 00:48:43 +09:00
Yu Watanabe 6a6c0dab30 pidref: fix typo
Follow-up for de34ec188c.
2024-10-17 00:46:45 +09:00
Yu Watanabe e776ab8e21 ukify: fix typo
Follow-up for 02eabaffe9.
2024-10-17 00:44:41 +09:00
Yu Watanabe 8333badeb2 Merge pull request #34381 from DaanDeMeyer/extension-submounts
sysext: Deal with nested mounts properly
2024-10-17 00:11:17 +09:00
Yu Watanabe ce2b92e8b0 journalctl: do not directly use optarg, but copy optarg before use
Otherwise, if the process forks child processes, then the arguments
cannot be used from them.
To avoid potential issues like the one fixed by
6d3012bab4.
2024-10-16 23:06:42 +09:00
Yu Watanabe d0ad4e88d4 journalctl: erase verify key before free
Even optarg is erased, copied string was not erased.
Let's erase the copied key for safety.
2024-10-16 20:53:57 +09:00
Yu Watanabe c256fb06d7 Merge pull request #34756 from yuwata/test-oomd-cleanups
TEST-55-OOMD: several cleanups
2024-10-16 18:39:33 +09:00
Yu Watanabe 7693e8d9d0 test: fix TOCTOU in test-json
Follow-up for 60ae3b86fb.
Fixes CID#1563782.
2024-10-16 10:06:57 +01:00
Yu Watanabe a6092b532e TEST-55-OOMD: check slice property before stressing slice 2024-10-16 15:20:15 +09:00
Yu Watanabe 98a0bb8a64 TEST-55-OOMD: stop test units when unnecessary
Then, sleep becomes not necessary anymore. This greatly improve performance.
2024-10-16 15:18:41 +09:00
Yu Watanabe 665882f8f3 TEST-55-OOMD: check slice more in detail
system and user slice has same name, hence we need to check full path.
2024-10-16 15:17:31 +09:00
Yu Watanabe 6bba058076 TEST-55-OOMD: split into small testcases
Then, we can run each small test cases separately.
2024-10-16 15:17:11 +09:00
Yu Watanabe 23fb9b63cd TEST-55-OOMD: check global config earlier
'Default Memory Pressure Duration' field in oomctl, which can be configured
with DefaultMemoryPressureDurationSec= in oomd.conf, is a global config.
Let's check it earlier.

This also drops unnecessary cleanup at the beginning.
2024-10-16 15:16:16 +09:00
Yu Watanabe 1473836a1e TEST-55-OOMD: set ManagedOOMMemoryPressure= and friends in a drop-in config
Fedora and friends has a drop-in config for the settings in
/usr/lib/systemd/user/slice.d/ . Hence, settings in the main .slice may be
overridden. Let's set below in a drop-in with higher decimal prefix.

Also, rename override.conf -> 99-managed-oom-preference.conf for the same reason.
2024-10-16 14:49:56 +09:00
Yu Watanabe 5f3cfb9d5e TEST-19-CGROUP: add test cases for IPAddressAllow=/IPAddressDeny= 2024-10-16 14:32:13 +09:00
Yu Watanabe 77bbd9f1bd core/cgroup: fix IPAddressAllow=/IPAddressDeny= set through DBus
Fixes a regression caused by 84ebe6f013 (v250).
Fixes #34773.
2024-10-16 14:31:49 +09:00
Yu Watanabe 548360817e Merge pull request #34482 from bgurney-rh/alt-nvme-multins-symlink-fix
Pin obsolete NVMe symlinks to namespace 1
2024-10-16 10:05:46 +09:00
Yu Watanabe 770980bc13 Merge pull request #34781 from poettering/write-string-rename-full
fileio: write_string_file() naming clean-ups
2024-10-16 06:18:57 +09:00
Yu Watanabe 529fbd25a7 Merge pull request #34719 from poettering/pidref-remote
pidref: add explicit concept of "remote" PidRef
2024-10-16 06:15:26 +09:00
Yu Watanabe 7a3ee9217e machine: add MachineImage interface
Follow-up for fb0ea6a6a3.
Fixes #34772.
2024-10-15 20:44:13 +09:00
Yu Watanabe d115bd5ab4 Merge pull request #34771 from ZLima12/run0-root-working-directory
run: fix bug causing run0 to ignore `-D /`.
2024-10-15 20:43:47 +09:00
Yu Watanabe a5f2609828 Merge pull request #34442 from yuwata/network-dhcp6-information-requesting-ia-pd
network/dhcp6: allow to request IA_PD on information requesting mode
2024-10-15 20:42:46 +09:00
Yu Watanabe ba0d3d490f busctl: show information of passed file descriptor 2024-10-15 19:09:38 +09:00
Yu Watanabe 60ae3b86fb sd-json: introduce json_variant_new_fd_info()
Currently this is not used, but will be used later.
2024-10-15 19:09:38 +09:00
Yu Watanabe 32944d1c7a sd-json: introduce json_variant_new_devnum() and friends 2024-10-15 19:09:38 +09:00
Yu Watanabe 28b9c823c7 fs-util: make readlink_malloc() inline 2024-10-15 19:09:38 +09:00
Yu Watanabe c284aa7bf1 busctl: minor coding style cleanups
- rename output parameter of json_transform_and_append(),
- return from call() earlier to reduce indentation,
- add several missing error messages.
2024-10-15 19:09:38 +09:00
Yu Watanabe e71b0e2ec5 network/radv: update comment
DHCPv6PrefixDelegation= is replaced with DHCPPrefixDelegation=.
2024-10-15 18:23:59 +09:00
Yu Watanabe daf9f42f91 man/network: update example for router upstream interface
This comments out all optional settings.
2024-10-15 18:23:59 +09:00
Yu Watanabe 1918eda30d network/dhcp6: process hostname and IA_PD on information requesting mode
Fixes #34299.
2024-10-15 18:23:59 +09:00
Yu Watanabe cf7a403e47 sd-dhcp6-lease: adjust information refresh time with lifetime of IA_PD
For the case when IRT is too large but lifetime of IA_PD is too short.
2024-10-15 18:23:59 +09:00
Yu Watanabe 180cc5421d sd-dhcp6-client: allow to request IA_PD on information requesting mode
To support RFC 7084, WPD-4.
2024-10-15 18:23:59 +09:00
Yu Watanabe 8fead9c9e4 network/dhcp6: set hostname even if UseAddress=no
Follow-up for f963f8953d and
1536b7b2d0.
2024-10-15 18:23:59 +09:00
Yu Watanabe 7860677e03 sd-dhcp6-lease: use free_and_replace_full() 2024-10-15 18:23:59 +09:00
Yu Watanabe 35c279478f Merge pull request #34769 from yuwata/machine-by-name-or-pid
machine: lookup_machine_by_name_or_pid() may return 1 on error and it is already replied
2024-10-15 17:56:48 +09:00
Yu Watanabe 71a886518b man: update documents of "_outbound" addresses
Follow-up for 4adf2653e2.
Addresses https://github.com/systemd/systemd/issues/34739#issuecomment-2412904739.
2024-10-15 09:25:13 +02:00
Yu Watanabe 1f021ce3d1 TEST-13-NSPAWN: several cleanups
- suppress unnecessary error messages, especially in loop and at_exit(),
- ensure the container service is stopped before restarting,
- do not send KILL signal, as garbages will remain, and disturb the next
  invocation,
- drop unnecessary workaround of trying machine twice.
2024-10-15 16:16:25 +09:00
Yu Watanabe 10230b8251 machine: trivial coding style cleanups 2024-10-15 14:24:58 +09:00
Yu Watanabe d1ac7d76b4 machine: fix memleak in vl_method_list_images()
Fixes an issue in fb0ea6a6a3.
2024-10-15 14:24:58 +09:00
Yu Watanabe d2c1451b73 machine: lookup_machine_by_name_or_pid() may return 1 on error and it is already replied
Follow-ups for 1bd979dddb and later
commits.

Fixes #34764.
2024-10-15 14:24:58 +09:00
Yu Watanabe afc5a14fca Merge pull request #34752 from yuwata/udev-remove-database-on-remove
udev: remove database file on remove event
2024-10-15 13:06:00 +09:00
Yu Watanabe 11a8cb490f Merge pull request #34736 from yuwata/network-mtu
network: wait for IPv6 MTU being synced to link MTU
2024-10-15 10:54:58 +09:00
Yu Watanabe 5f49e48b39 Merge pull request #34744 from yuwata/oom-cleanups
oom: sort output of oomctl by cgroup path
2024-10-15 10:51:50 +09:00
Yu Watanabe 49c46fbaf1 TEST-17-UDEV: check if udev database file is removed on remove event 2024-10-15 10:51:25 +09:00
Yu Watanabe e8df18c9e1 udev: do not try to lock whole block device on remove event
As another device may be created with the same device node while udevd
is processing the remove event of the previous owner of the device node.

This also adds comment why we skip watching device node on remove.
2024-10-15 10:51:19 +09:00
Yu Watanabe a104a0e2eb Merge pull request #34755 from YHNdnzj/soft-reboot-generator-cmdline
core/manager: pass soft-reboot count to generators
2024-10-15 10:48:31 +09:00
Yu Watanabe 39283a1f27 network: wait for IPv6 MTU being synced to link MTU
The kernel resets the IPv6 MTU of an interface when its link MTU is changed.
But it seems the operation is asynchronous, and even when we detect that
the link MTU is changed, the IPv6 MTU may not be reset yet.
====
[ 2257.067613] systemd-networkd[447122]: veth99: MTU is changed: 1500 →1600 (min: 68, max: 65535)
[ 2257.067641] systemd-networkd[447122]: Setting '/proc/sys/net/ipv6/conf/veth99/mtu' to '1410'
[ 2257.067711] systemd-networkd[447122]: No change in value '1410', suppressing write
====
As you can see, even if the link MTU is changed to 1600, the IPv6 MTU is
unchanged (in this case, still 1410).
2024-10-15 06:56:06 +09:00
Yu Watanabe 7edfbf4130 network/sysctl: make link_set_ipv6_mtu() log failures
No functional change, just refactoring.
2024-10-15 06:53:01 +09:00
Yu Watanabe ea684ccb6d network/route: use sysctl_read_ip_property_int() for reading route/max_size 2024-10-15 06:52:19 +09:00
Yu Watanabe d56d07fc1e sysctl-util: introduce sysctl_read_ip_property_int() and _uint32()
Currently not used, but will be used later.
2024-10-15 06:42:12 +09:00
Yu Watanabe 5b2dce150d udev: do not re-create database on remove event
Fixes a bug introduced by f6bda694f9 (v256).

With the offending commit, on remove event, database file for a device is once
removed in event_execute_rules_on_remove(), but later re-created here.
This fixes the issue, and makes the database file not re-created on remove event.
2024-10-15 06:32:39 +09:00
Yu Watanabe d4ad878b9a oomd-util: use FOREACH_ARRAY() more 2024-10-15 06:02:39 +09:00
Yu Watanabe 098f32e2a1 sd-radv: drop sd_radv_prefix and friends, and use sd_ndisc_option to manage NDisc options
No effective functional change, just refactoring.
2024-10-15 05:59:20 +09:00
Yu Watanabe f121d8179a Merge pull request #34738 from behrmann/ukifyoption
ukify: Add a config object
2024-10-15 05:58:49 +09:00
Yu Watanabe 841988f80d TEST-13-NSPAWN: add test for 'machinectl terminate'
This also fixes the test for io.systemd.Machine.Terminate.

When systemd-nspawn@.service receives stop signal, then systemd-nspawn
sends SIGRTMIN+3 to the container, which was previously ignored by the
custom init script used by the container.
Let's introduce another trap for the signal, and correctly handle it.

Follow-up for 164af66f9a.
2024-10-15 05:58:25 +09:00
Yu Watanabe c9dea52941 Merge pull request #34743 from yuwata/bus-message-dump-fd
bus-message-util: introduce bus_message_dump_fd() and _string()
2024-10-15 05:58:03 +09:00
Yu Watanabe 40fbde9571 Merge pull request #34745 from yuwata/local-outbounds-prefsrc
local-addresses: honor RTA_PREFSRC field of gateway
2024-10-15 05:57:34 +09:00
Yu Watanabe f80d6b9304 bash-completion/busctl: support wait command
Follow-up for 30465af656.
2024-10-14 09:39:38 +01:00
Yu Watanabe 81fd92809d network/address: use config_parse_in_addr_non_null() at one more place
No functional change, just refactoring.
2024-10-14 08:10:35 +09:00
Yu Watanabe 6f639b2555 network/address: do not set family in config_parse_broadcast()
The family will be checked later in
address_section_verify() -> address_section_adjust_broadcast(),
hence it is not necessary to set here.

Follow-up for 5d15c7b19c.

Fixes oss-fuzz#372994449.
Fixes #34748.
2024-10-14 08:10:30 +09:00
Yu Watanabe 4a7fd9d1d5 Merge pull request #34555 from rpigott/busctl-wait
busctl: add wait verb to wait for signals
2024-10-13 18:50:48 +09:00
Yu Watanabe 709fdcc75a Merge pull request #34520 from vcaputo/mmap-cache-unused-min
mmap-cache: enforce an unused windows minimum
2024-10-13 14:48:35 +09:00