Yu Watanabe
ef45f5c8d0
network: refuse further requests when manager is in MANAGER_STOPPED
...
In that case, requests will never be processed anyway. But further more,
we cannot call link_ref() at that stage. Otherwise, we trigger assertion.
2024-11-03 09:14:36 +09:00
Yu Watanabe
4d8e5fefae
sd-varlink: suppress one log message when callback already successfully enqueued an error response
...
Follow-up for d2ebf5cc1d .
The detailed error response is already logged, hence not necessary to
log again with the errno converted from the error response, which typically
less informative, e.g.
===
varlink-26-26: Setting state idle-server
varlink-26-26: Received message: {"method":"io.systemd.UserDatabase.GetUserRecord","parameters":{"service":""}}
varlink-26-26: Changing state idle-server → processing-method
varlink-26-26: Sending message: {"error":"io.systemd.UserDatabase.BadService","parameters":{}}
varlink-26-26: Changing state processing-method → processed-method
varlink-26-26: Callback for io.systemd.UserDatabase.GetUserRecord returned error: Invalid request descriptor
varlink-26-26: Changing state processed-method → idle-server
varlink-26-26: Got POLLHUP from socket.
===
2024-10-31 22:58:35 +01:00
Yu Watanabe
3d8f2c1464
resolve: do not try to send varlink error more than once
...
After d2ebf5cc1d , sd_varlink_error() and
friends return negative errno.
Fixes https://github.com/systemd/systemd/pull/34946#discussion_r1823703636 .
2024-10-31 18:45:08 +09:00
Yu Watanabe
80f38c1f65
test-network: add test case for tunnel Local=dhcp4
...
For issue #24854 .
2024-10-31 18:41:44 +09:00
Yu Watanabe
b8b0c1a065
network: update tunnel or vxlan interface if the local address is changed
...
If a tunnel or vxlan is configured with Local=dhcp4 or so, then the
local address needs to be changed when it is changed.
Fixes #24854 .
2024-10-31 18:41:44 +09:00
Yu Watanabe
76423f301e
machine: lookup_machine_by_name_or_pidref() returns negative errno on failure
...
This effectively reverts d2c1451b73 .
After the commit d2ebf5cc1d , sd_varlink_error()
returns negative errno, hence the function always return negative errno
on failure.
2024-10-31 11:02:35 +09:00
Yu Watanabe
0ef4a21b09
machine: use JSON_BUILD_PAIR_STRV_ENV_PAIR_NON_EMPTY()
...
Also use JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL().
2024-10-31 11:02:35 +09:00
Yu Watanabe
dbceb0507f
sd-json: introduce JSON_BUILD_PAIR_STRV_ENV_PAIR_NON_EMPTY() macro
...
It is similar to JSON_BUILD_PAIR_STRV_NON_EMPTY, but takes the
list of environment variables.
2024-10-31 11:02:35 +09:00
Yu Watanabe
32d77f5df8
sd-json: use strv_env_get_merged()
2024-10-31 11:02:35 +09:00
Yu Watanabe
7633001cdd
env-util: introduce strv_env_get_merged()
2024-10-31 11:02:35 +09:00
Yu Watanabe
e4d477efc6
env-util: replace 'char **' with 'char**'
2024-10-31 11:02:35 +09:00
Yu Watanabe
b1e11a252d
TEST-13-NSPAWN: add test cases for listing multiple machines
2024-10-31 11:02:23 +09:00
Yu Watanabe
f0fdefc045
TEST-13-NSPAWN: trivially kill all processes in the container on termination
...
Follow-up for 841988f80d .
No functional change, as $PID is 0 when the trap is inserted.
2024-10-31 10:59:14 +09:00
Yu Watanabe
1856ab4503
TEST-13-NSPAWN: check returned machine list
2024-10-31 10:59:14 +09:00
Yu Watanabe
e79b58c825
TEST-13-NSPAWN: fix race between container exit and varlink call
...
Follow-up for 3cb72c7862 .
The test container exits shortly, hence when varlinkctl is called, the
container may be already terminated. Let's make the container live
infinitely.
Also, this makes the os-release files removed after the container is started.
2024-10-31 10:59:14 +09:00
Yu Watanabe
20e1237ce1
machined: ACQUIRE_METADATA_NO is zero
...
Follow-ups for a94fbcaa35 and
9de215219c .
2024-10-31 10:59:14 +09:00
Yu Watanabe
f283816acb
machine: use sd_json_variant_append_arraybo() and JSON_BUILD_PAIR_VARIANT_NON_NULL()
...
Follow-up for 45755275e5 .
2024-10-31 10:59:14 +09:00
Yu Watanabe
5310cf3354
NEWS: fix typo
2024-10-31 10:58:25 +09:00
Yu Watanabe
ba63cc7448
sd-varlink: update comment
2024-10-31 09:52:15 +09:00
Yu Watanabe
885691d454
firstboot: several cleanups ( #34958 )
...
Split out of #33226
2024-10-31 08:05:39 +09:00
Yu Watanabe
cb15aa7b37
network: support reconfiguring netdev ( #34909 )
...
Closes #9627
Closes #27177 .
Closes #34907 .
Replaces #22557 .
2024-10-31 07:01:46 +09:00
Yu Watanabe
2e612ce1b7
man: update documentation for 'networkctl reload'
2024-10-31 05:33:10 +09:00
Yu Watanabe
0de5562413
test-network: test for reload of .netdev file of stacked netdev
...
For issue #9627 , #27177 , and #34907 .
2024-10-31 05:30:40 +09:00
Yu Watanabe
b3ae4e8622
network/netdev: replace old NetDev object with newer one on reload
...
Then, when a .netdev file of a stacked netdev is modified, the netdev
can be reconfigured with the updated setting by something like the
following way:
```
ip link del vlan99
networkctl reload
```
Note, removing the vlan interface in the above example may not be necessary,
e.g. when only VLAN flags, egress mapping, or ingress mapping are updated.
But, it is necessary when VLAN ID is updated.
Closes #9627 .
Closes #27177 .
Closes #34907 .
Replaces #22557 .
2024-10-31 05:30:40 +09:00
Yu Watanabe
890bd7225a
network/netdev: reconfigure netdev if possible
...
Some netdev configs can be modified after the interface is created.
Let's allow to reconfigure existing interfaces.
2024-10-31 05:30:40 +09:00
Yu Watanabe
933d88f756
network/netdev: move calls of netdev_attach() and netdev_request_to_create() to netdev_load()
...
No functional change, preparation for later commits.
2024-10-31 05:30:40 +09:00
Yu Watanabe
f7d5d7c593
network/tunnel: reuse existing 6rd sit tunnel ( #34938 )
...
split-out of #34909 .
2024-10-31 04:04:55 +09:00
Yu Watanabe
5251cb8254
network/netdev: do not try to update several parameters if the interface already exists ( #34937 )
...
split-out of #34909 .
2024-10-31 04:04:33 +09:00
Yu Watanabe
e725a91ab7
network: several cleanups for reloading .network files ( #34933 )
...
split-out of #34909 .
2024-10-31 04:04:10 +09:00
Yu Watanabe
6ab12224c9
network: process queued remove requests on stop ( #34871 )
...
Fixes a regression caused by 85a6f300c1
and its later commits.
Fixes #34837 .
2024-10-31 04:03:11 +09:00
Yu Watanabe
d1fd45d145
mkosi: Update packaging specs to latest ( #34951 )
2024-10-31 02:31:03 +09:00
Yu Watanabe
59528e55af
test-network: add test case for reuse of existing 6rd SIT tunnel
2024-10-31 02:09:31 +09:00
Yu Watanabe
ceae9f9a38
network/ipvlan: do not try to update MAC address
2024-10-31 01:06:25 +09:00
Yu Watanabe
6804bbdaf1
network/macsec: IFLA_MACSEC_PORT attribute cannot be changed
...
Also, though currently not supported by networkd,
IFLA_MACSEC_CIPHER_SUITE, IFLA_MACSEC_ICV_LEN, IFLA_MACSEC_SCI
cannot be updated.
2024-10-31 01:06:25 +09:00
Yu Watanabe
49639363ab
network/vxlan: do not try to update several parameters
...
Currently, netdev->ifindex is always zero when this function is called.
So, this does not change any behavior. Preparation for later commits.
2024-10-31 01:06:25 +09:00
Yu Watanabe
17c5337f7b
network/netdev: introduce netdev_can_set_mac/mtu() helper functions
...
Several netdevs cannot set IFLA_ADDRESS or IFLA_MTU attribute on update.
Currently, the vtable field is unused, as we do not support updating
existing netdevs. Preparation for later commits.
2024-10-31 01:06:25 +09:00
Yu Watanabe
00c0a94498
network: use newly loaded Network object if a referenced NetDev object is updated
...
Even if .network file is not updated, referenced NetDev object may be
different. In that case, let's use the newly loaded Network object.
2024-10-31 00:58:47 +09:00
Yu Watanabe
173c9f639b
network: drop no-op cleanup
...
- network_load() is always called with an empty OrderedHashmap, renamed the output
parameter to 'ret'.
- When netdev_load() is called on startup, the hashmap is NULL. When it is
called on reloading, the hashmap is not cleaned up.
Hence, then these cleanups are always no-op. Let's drop them.
2024-10-31 00:58:42 +09:00
Yu Watanabe
d16083557b
network/netdev: update state file when NetDev object assignment is changed
2024-10-31 00:52:28 +09:00
Yu Watanabe
525c53a95a
network: swap asterisk and space
2024-10-31 00:51:50 +09:00
Yu Watanabe
f85213e8f6
github: drop workaround and use distro mold
...
Now, ubuntu-24.04 has mold-2.30.0+dfsg-1build1 .
See https://packages.ubuntu.com/noble/mold .
2024-10-31 00:34:48 +09:00
Yu Watanabe
58a011ba48
test-network: add test for DHCPv4 address removal on stop
...
For issue #34837 .
2024-10-31 00:34:48 +09:00
Yu Watanabe and Will Fancher
db68e99046
network: process queued remove requests before networkd is stopped
...
This makes networkd process all queued remove requests when a
terminating or restarting signal is received. Otherwise, e.g. DHCPv4
address will not be removed on stop, especially when
KeepConfiguration=no.
Fixes a bug introduced by 85a6f300c1 and
its subsequent commits.
Fixes #34837 .
Co-authored-by: Will Fancher <elvishjerricco@gmail.com >
2024-10-31 00:34:44 +09:00
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
d252451482
network/tunnel: reuse existing 6rd SIT tunnel
...
The 6rd SIT tunnel configuration can be updated without recreating the
interface. Let's reuse existing tunnel.
2024-10-30 03:17:09 +09:00
Yu Watanabe
dc3dfb72c8
network/tunnel: merge dhcp4_pd_create_6rd_tunnel_message() into dhcp4_pd_create_6rd_tunnel()
...
No functional change, just refactoring and preparation for later
commits.
2024-10-30 03:17:09 +09: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