]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
22 months agocore/unit: clean up unit_log_resources 30417/head
Mike Yuan [Sun, 10 Dec 2023 17:36:22 +0000 (01:36 +0800)] 
core/unit: clean up unit_log_resources

* Use a unified struct to store accounting fields/suffixes
* Use strextendf_with_separator where appropriate
* Don't mix stack and heap allocation for one iovec array

22 months agocore/unit: raise log level for unit_log_resources on certain memory thresholds
Mike Yuan [Sun, 10 Dec 2023 17:44:13 +0000 (01:44 +0800)] 
core/unit: raise log level for unit_log_resources on certain memory thresholds

We already do this for all other types of accountings. Let's
make this nicer for memory accounting too.

22 months agomacro-fundamental: add U64_{K,M,G}B
Mike Yuan [Wed, 13 Dec 2023 11:25:40 +0000 (19:25 +0800)] 
macro-fundamental: add U64_{K,M,G}B

22 months agoiovec-util: add missing assertion
Mike Yuan [Sun, 10 Dec 2023 16:12:30 +0000 (00:12 +0800)] 
iovec-util: add missing assertion

22 months agovarlink: improve compat with varlink C reference implementation
Lennart Poettering [Fri, 1 Dec 2023 16:59:49 +0000 (17:59 +0100)] 
varlink: improve compat with varlink C reference implementation

The reference implementation seems to set the 'parameters' field for
method calls to 'null' if nothing is specified on its command line. We
so far only could deal if the parameters field was unset or set to the
empty object. Let's also accept the 'null' type.

23 months agoMerge pull request #30433 from yuwata/network-nexthop-cleanups
Yu Watanabe [Wed, 13 Dec 2023 05:16:27 +0000 (14:16 +0900)] 
Merge pull request #30433 from yuwata/network-nexthop-cleanups

network: introduce ManageForeignNextHops=

23 months agoMerge pull request #30453 from poettering/dissect-fixes
Yu Watanabe [Wed, 13 Dec 2023 05:15:05 +0000 (14:15 +0900)] 
Merge pull request #30453 from poettering/dissect-fixes

dissect-image: various fixes

23 months agotest: mask the mdmonitor.service
Frantisek Sumsal [Tue, 12 Dec 2023 22:01:31 +0000 (23:01 +0100)] 
test: mask the mdmonitor.service

It's pulled in by one of the udev rules (63-md-raid-arrays.rules) and it
fails every time, because there's no valid email address in
/etc/mdadm.conf:

[    5.778153] testsuite-64.sh[403]: mdadm: array /dev/md/mdmirror started.
[    5.819137] kernel: md/raid1:md127: not clean -- starting background reconstruction
[    5.819141] kernel: md/raid1:md127: active with 2 out of 2 mirrors
[    5.819159] kernel: md127: detected capacity change from 0 to 129024
[    5.821950] kernel: md: resync of RAID array md127
...
[    5.887192] mdadm[424]: mdadm: No mail address or alert command - not monitoring.
[    5.890772] systemd[1]: Starting mdmonitor.service...
[    5.891718] systemd[1]: Started mdmonitor.service.
[    5.892570] systemd[1]: mdmonitor.service: Main process exited, code=exited, status=1/FAILURE
[    5.892618] systemd[1]: mdmonitor.service: Failed with result 'exit-code'.

And as we (re)assemble the MD devices multiple times, this gets quite
noisy, especially since we later start hitting the service start rate
limit.

Fedora has the mdmonitor.service patched, so it won't start without
/etc/mdadm.conf being present, but Arch uses the upstream unit which
doesn't have such guard.

Let's just mask the service completely, which replaces all that noise
with one warning:

[    6.553583] testsuite-64.sh[294]: + udevadm wait --settle ...
[    6.580700] systemd[1]: sys-devices-virtual-block-md127.device: Failed to enqueue SYSTEMD_WANTS job, ignoring: Unit mdmonitor.service is masked.

23 months agoman: make minor corrections to smbios-type-11(7)
Will Springer [Tue, 12 Dec 2023 22:27:21 +0000 (14:27 -0800)] 
man: make minor corrections to smbios-type-11(7)

- Correct initial version of io.systemd.credential* to 252
- Fix leftover copy-pasted heading

23 months agodissect-tool: right-align the partition number
Lennart Poettering [Mon, 4 Dec 2023 17:07:18 +0000 (18:07 +0100)] 
dissect-tool: right-align the partition number

The right-alignment was applied to the wrong column, because neither
ee8e497d249ab2e2df92aa024274f5b817270114 nor
1474d7ac2d308204e599a2502a8b5625bca76bcc updated the column count as
they should have.

23 months agoopenssl-util: avoid freeing invalid pointer
David Tardon [Tue, 12 Dec 2023 14:47:33 +0000 (15:47 +0100)] 
openssl-util: avoid freeing invalid pointer

23 months agodissect-image: move comment to right place 30453/head
Lennart Poettering [Mon, 4 Dec 2023 17:28:45 +0000 (18:28 +0100)] 
dissect-image: move comment to right place

The image name is extracted from the image path originally passed in,
i.e. not the contents of the image. And the image UUID is directly
retrieved from the partition table, hence also not from the contents.
Let's hence move the comment to separate out the stuff extract from the
file systems (and thus only available when mounting/with privs/with
block devices) from the data available without any of that.

23 months agodissect-image: fix fd leak in dissected_image_acquire_metadata()
Lennart Poettering [Mon, 4 Dec 2023 17:21:23 +0000 (18:21 +0100)] 
dissect-image: fix fd leak in dissected_image_acquire_metadata()

We have to go through the "finish" label to properly close all pipes in
the error path, so that we don't leak them.

23 months agodissect-image: don't try to validate an extension release file with no image name
Lennart Poettering [Mon, 4 Dec 2023 17:20:36 +0000 (18:20 +0100)] 
dissect-image: don't try to validate an extension release file with no image name

Otherwise we might validate the OS release file instead…

23 months agodissect-image: handle 'continue' event in metadata acquisition uniformly
Lennart Poettering [Mon, 4 Dec 2023 17:19:27 +0000 (18:19 +0100)] 
dissect-image: handle 'continue' event in metadata acquisition uniformly

Let's jump to the same label in all cases, that closes the associated
pipe, systematically.

23 months agodissect-image: path[] is now defined for all metadata fields
Lennart Poettering [Mon, 4 Dec 2023 17:18:48 +0000 (18:18 +0100)] 
dissect-image: path[] is now defined for all metadata fields

There's no point in handling a case that never can happen.

23 months agoexecute: improve log message about TTY ownership reset failures
Lennart Poettering [Wed, 6 Dec 2023 15:38:53 +0000 (16:38 +0100)] 
execute: improve log message about TTY ownership reset failures

23 months agotest-network: add test for ManageForeignNextHops=no 30433/head
Yu Watanabe [Mon, 11 Dec 2023 18:13:09 +0000 (03:13 +0900)] 
test-network: add test for ManageForeignNextHops=no

23 months agotest-network: reduce indent for verification
Yu Watanabe [Mon, 11 Dec 2023 18:10:28 +0000 (03:10 +0900)] 
test-network: reduce indent for verification

23 months agotest-network: drop redundant call of tearDown()
Yu Watanabe [Mon, 11 Dec 2023 18:16:49 +0000 (03:16 +0900)] 
test-network: drop redundant call of tearDown()

23 months agonetwork/nexthop: introduce ManageForeignNextHops= boolean setting
Yu Watanabe [Mon, 11 Dec 2023 17:29:25 +0000 (02:29 +0900)] 
network/nexthop: introduce ManageForeignNextHops= boolean setting

Closes #29034.

23 months agotest: "never" is not a valid value for Restart=
Frantisek Sumsal [Tue, 12 Dec 2023 11:43:36 +0000 (12:43 +0100)] 
test: "never" is not a valid value for Restart=

[  154.140565] testsuite-07.sh[1014]: + systemctl start badbin_assert.socket
[  154.738606] testsuite-07.sh[1014]: + socat - ABSTRACT-CONNECT:badbin_assert.socket
[  154.768418] systemd[1]: Cannot find unit for notify message of PID 1021, ignoring.
[  154.812357] systemd[1]: /run/systemd/system/badbin_assert.service:3: Failed to parse service restart specifier, ignoring: never
[  155.347350] testsuite-07.sh[1014]: + timeout 10 sh -c 'while systemctl is-active badbin_assert.service; do sleep .5; done'
[  155.669695] (badbin)[1045]: badbin_assert.service: Failed to execute /tmp/badbin: Exec format error
[  155.676596] systemd[1]: badbin_assert.service: Failed with result 'exit-code'.
[  156.081953] testsuite-07.sh[1051]: failed
[  156.132018] testsuite-07.sh[1054]: ++ systemctl show -P ExecMainStatus badbin_assert.service
[  156.326583] (badbin)[1050]: badbin_assert.service: Failed to execute /tmp/badbin: Exec format error
[  156.343566] systemd[1]: badbin_assert.service: Failed with result 'exit-code'.
[  156.904658] (badbin)[1055]: badbin_assert.service: Failed to execute /tmp/badbin: Exec format error
[  156.913709] systemd[1]: badbin_assert.service: Failed with result 'exit-code'.
[  157.066900] testsuite-07.sh[1014]: + [[ 0 == 203 ]]
[  157.081588] testsuite-07.sh[618]: + echo 'Subtest /usr/lib/systemd/tests/testdata/units/testsuite-07.issue-30412.sh failed'

Follow-up for 1eeaa93de36.

23 months agoMerge pull request #30445 from mrc0mmand/networkd-test-skip
Yu Watanabe [Tue, 12 Dec 2023 13:02:44 +0000 (22:02 +0900)] 
Merge pull request #30445 from mrc0mmand/networkd-test-skip

Temporarily skip tests with known issues in the systemd-networkd test suite

23 months agoexecute: handle gracefully if we cannot lock /dev/console when resetting tty due...
Lennart Poettering [Wed, 6 Dec 2023 15:37:18 +0000 (16:37 +0100)] 
execute: handle gracefully if we cannot lock /dev/console when resetting tty due to perms

This is the common case in --user instances, hence handle this
gracefully.

This should be safe since user instances won't get access to
/dev/console-related ttys anyway, but only their own ptys.

23 months agoMerge pull request #30441 from poettering/nspawn-fixlets
Yu Watanabe [Tue, 12 Dec 2023 13:00:35 +0000 (22:00 +0900)] 
Merge pull request #30441 from poettering/nspawn-fixlets

nspawn: two trivial nspawn tweaklets

23 months agoMerge pull request #30437 from YHNdnzj/job-start-msg
Yu Watanabe [Tue, 12 Dec 2023 12:59:34 +0000 (21:59 +0900)] 
Merge pull request #30437 from YHNdnzj/job-start-msg

core/job: emit job start message if we're only waiting for unit state

23 months agohibernate-resume: don't wait forever if hibernate info is from EFI
Mike Yuan [Tue, 12 Dec 2023 08:20:32 +0000 (16:20 +0800)] 
hibernate-resume: don't wait forever if hibernate info is from EFI

23 months agotest: temporarily skip checking NFT sets in test_address_static 30445/head
Frantisek Sumsal [Tue, 12 Dec 2023 11:25:47 +0000 (12:25 +0100)] 
test: temporarily skip checking NFT sets in test_address_static

Until https://github.com/systemd/systemd/issues/30427 is resolved.

23 months agotest: temporarily disable test_sysctl
Frantisek Sumsal [Tue, 12 Dec 2023 11:20:41 +0000 (12:20 +0100)] 
test: temporarily disable test_sysctl

Until https://github.com/systemd/systemd/issues/30056 is resolved.

23 months agonspawn: drop redundant assignments 30441/head
Lennart Poettering [Tue, 12 Dec 2023 10:02:28 +0000 (11:02 +0100)] 
nspawn: drop redundant assignments

23 months agonspawn: suffix some paths in log messages with /, as per coding style
Lennart Poettering [Tue, 12 Dec 2023 09:58:56 +0000 (10:58 +0100)] 
nspawn: suffix some paths in log messages with /, as per coding style

23 months agoMerge pull request #30156 from yuwata/network-mtu
Yu Watanabe [Tue, 12 Dec 2023 10:03:21 +0000 (19:03 +0900)] 
Merge pull request #30156 from yuwata/network-mtu

network: accept arbitrary size of MTU in .network

23 months agoMerge pull request #30426 from mrc0mmand/nft-shenanigans
Yu Watanabe [Tue, 12 Dec 2023 09:56:57 +0000 (18:56 +0900)] 
Merge pull request #30426 from mrc0mmand/nft-shenanigans

network: show the reason why NFT operation failed

23 months agonetwork: actually show the unexpected flags
Frantisek Sumsal [Mon, 11 Dec 2023 15:16:02 +0000 (16:16 +0100)] 
network: actually show the unexpected flags

The original version would yield a slightly _unexpected_ message for
this [Address] section:

[Address]
Address=10.9.3.1/24
HomeAddress=yes
ManageTemporaryAddress=yes

systemd-networkd[68396]: /run/systemd/network/25-address-static.network: unexpected address flags "n/a" were configured. Ignoring [Address] section from line 144.

Let's instead show the unexpected flags:

systemd-networkd[69160]: /run/systemd/network/25-address-static.network: unexpected address flags "home-address,manage-temporary-address" were configured. Ignoring [Address] section from line 144.

23 months agocore/job: emit job start message if we're only waiting for unit state 30437/head
Mike Yuan [Tue, 12 Dec 2023 08:33:13 +0000 (16:33 +0800)] 
core/job: emit job start message if we're only waiting for unit state

Currently, start/stop messages for device units are not used, since
job_perform_on_unit() does nothing and we simply wait for unit status
change. I think we still want some nice log messages explaining what
the start jobs for devices are doing, so let's fix this.

23 months agocore/device: add stopping job message
Mike Yuan [Tue, 12 Dec 2023 08:42:19 +0000 (16:42 +0800)] 
core/device: add stopping job message

The use case for stopping a device unit is indeed narrow,
but we still want to show a clear message.

Preparation for later commits.

23 months agopo: Translated using Weblate (Turkish)
Oğuz Ersen [Mon, 11 Dec 2023 13:43:51 +0000 (14:43 +0100)] 
po: Translated using Weblate (Turkish)

Currently translated at 100.0% (227 of 227 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/tr/
Translation: systemd/main

23 months agonetwork: drop redundant 'struct'
Yu Watanabe [Mon, 11 Dec 2023 14:58:59 +0000 (23:58 +0900)] 
network: drop redundant 'struct'

23 months agoMerge pull request #30363 from yuwata/analyze-find-template
Luca Boccassi [Mon, 11 Dec 2023 15:56:21 +0000 (15:56 +0000)] 
Merge pull request #30363 from yuwata/analyze-find-template

analyze: also find template unit when an instance is specified

23 months agoexecutor: don't duplicate FD array to avoid double closing
Luca Boccassi [Mon, 11 Dec 2023 01:03:39 +0000 (01:03 +0000)] 
executor: don't duplicate FD array to avoid double closing

Just use ExecParam directly, as these are all internal to sd-exec now
anyway. Avoids double close when execution fails after FDs are set up
for inheritance and were already re-arranged.

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

23 months agoMerge pull request #30422 from yuwata/network-tiny-fixes
Yu Watanabe [Mon, 11 Dec 2023 15:23:11 +0000 (00:23 +0900)] 
Merge pull request #30422 from yuwata/network-tiny-fixes

network: tiny fixes

23 months agonetwork: show the reason why NFT operation failed 30426/head
Frantisek Sumsal [Mon, 11 Dec 2023 13:51:25 +0000 (14:51 +0100)] 
network: show the reason why NFT operation failed

23 months agonetwork: add a missing space
Frantisek Sumsal [Mon, 11 Dec 2023 13:50:32 +0000 (14:50 +0100)] 
network: add a missing space

23 months agokernel-install: Fix inspect with --root= when no version is specified
Daan De Meyer [Sun, 10 Dec 2023 16:02:38 +0000 (17:02 +0100)] 
kernel-install: Fix inspect with --root= when no version is specified

Using the kernel version from the host is incorrect in this case, so
fix the logic so it handles no version being specified correctly with
--root=.

23 months agobootctl: fix case-sensitive comparisons in reporting bootloader entries
ksaleem [Wed, 6 Dec 2023 16:44:24 +0000 (11:44 -0500)] 
bootctl: fix case-sensitive comparisons in reporting bootloader entries

Fixes #30159

23 months agoMerge pull request #30389 from keszybz/test-ukify-du
Yu Watanabe [Mon, 11 Dec 2023 09:37:05 +0000 (18:37 +0900)] 
Merge pull request #30389 from keszybz/test-ukify-du

Remove temporary directories created by test_ukify

23 months agokernel-install: Look for uki.conf in /usr/lib/kernel as well
Daan De Meyer [Sun, 10 Dec 2023 13:20:08 +0000 (14:20 +0100)] 
kernel-install: Look for uki.conf in /usr/lib/kernel as well

23 months agonetwork: drop unused Manager.routes_foreign 30422/head
Yu Watanabe [Mon, 11 Dec 2023 06:44:08 +0000 (15:44 +0900)] 
network: drop unused Manager.routes_foreign

23 months agonetwork: adjust log message
Yu Watanabe [Mon, 11 Dec 2023 06:19:02 +0000 (15:19 +0900)] 
network: adjust log message

The address or neighbor processed here may not be foreign.

23 months agotest: add test cases for issue #30357 30363/head
Yu Watanabe [Fri, 8 Dec 2023 01:41:49 +0000 (10:41 +0900)] 
test: add test cases for issue #30357

23 months agoanalyze: also find template unit when a template instance is specified
Yu Watanabe [Thu, 7 Dec 2023 10:29:29 +0000 (19:29 +0900)] 
analyze: also find template unit when a template instance is specified

Fixes a regression caused by 2f6181ad4d6c126e3ebf6880ba30b3b0059c6fc8.

Fixes #30357.

Co-authored-by: Jeff King <peff@peff.net>
23 months agonetwork/neighbor: add missing OOM check
Yu Watanabe [Sun, 10 Dec 2023 07:03:52 +0000 (16:03 +0900)] 
network/neighbor: add missing OOM check

23 months agoAdding Trekstor Primebook C13 rotation to 60-sensor.hwdb (#30415)
JmbFountain [Sun, 10 Dec 2023 22:37:44 +0000 (23:37 +0100)] 
Adding Trekstor Primebook C13 rotation to 60-sensor.hwdb (#30415)

* Adding Trekstor Primebook C13 rotation to 60-sensor.hwdb

23 months agomkosi: Copy /boot into the ESP as well
Daan De Meyer [Sun, 10 Dec 2023 17:13:01 +0000 (18:13 +0100)] 
mkosi: Copy /boot into the ESP as well

Newer mkosi will start installing UKIs to /boot so prepare for that
by making sure we also copy /boot into the ESP.

23 months agoMerge pull request #30406 from yuwata/resolve-clean-exit
Luca Boccassi [Sun, 10 Dec 2023 18:42:24 +0000 (18:42 +0000)] 
Merge pull request #30406 from yuwata/resolve-clean-exit

resolve: make resolved exit cleanly

23 months agoMerge pull request #30404 from yuwata/network-peer
Luca Boccassi [Sun, 10 Dec 2023 14:13:37 +0000 (14:13 +0000)] 
Merge pull request #30404 from yuwata/network-peer

network/route: fix reachability check when peer address is specified

23 months agoMerge pull request #30407 from yuwata/network-clean-exit
Luca Boccassi [Sun, 10 Dec 2023 12:54:17 +0000 (12:54 +0000)] 
Merge pull request #30407 from yuwata/network-clean-exit

network: make networkd exit cleanly

23 months agotest: update log message and use SYNTHETIC_ERRNO()
Yu Watanabe [Wed, 6 Dec 2023 05:41:42 +0000 (14:41 +0900)] 
test: update log message and use SYNTHETIC_ERRNO()

Follow-up for ce5a6d5307568671cec7c253e984ffc0eafa726b.

Addresses https://github.com/systemd/systemd/pull/30049#discussion_r1395453408.

23 months agoelf2efi: remove outdated comment mentioning linker script
Mike Yuan [Sun, 10 Dec 2023 11:05:27 +0000 (19:05 +0800)] 
elf2efi: remove outdated comment mentioning linker script

Follow-up for 142f0c61a37091e233b80f02375cff1114dab24a

23 months agoresolve: fix wrong error cause assignment to log_debug_errno()
Yu Watanabe [Sun, 10 Dec 2023 05:33:48 +0000 (14:33 +0900)] 
resolve: fix wrong error cause assignment to log_debug_errno()

Fixes #30392.

23 months agocore/exec-invoke: sigwait() returns positive errno and never EINTR
Mike Yuan [Fri, 8 Dec 2023 18:22:04 +0000 (02:22 +0800)] 
core/exec-invoke: sigwait() returns positive errno and never EINTR

Follow-up for 5b6319dceedd81f3f1ce7eb70ea5defaef43bcec (gosh this is
ancient), and effectively reverts 3dead8d925ea9db1fbd65b702b6b807e49ddeacf.

sigwait() is documented to "suspend execution of the calling thread
until one of the signals specified in the signal set becomes pending".
And the only error it returns is EINVAL, when "set contains an invalid
signal number". Therefore, there's no need to run it in a loop or
to check for runtime error.

23 months agotest-network: check if networkd exits cleanly 30407/head
Yu Watanabe [Thu, 7 Dec 2023 05:57:29 +0000 (14:57 +0900)] 
test-network: check if networkd exits cleanly

23 months agonetwork/ipv4ll: do not start sd-ipv4ll on exit
Yu Watanabe [Thu, 7 Dec 2023 05:45:07 +0000 (14:45 +0900)] 
network/ipv4ll: do not start sd-ipv4ll on exit

When assert_return() is critical, the following assertion is triggered
on exit:
---
 #0  0x00007f8b1f6b0884 in __pthread_kill_implementation () from target:/lib64/libc.so.6
 #1  0x00007f8b1f65fafe in raise () from target:/lib64/libc.so.6
 #2  0x00007f8b1f64887f in abort () from target:/lib64/libc.so.6
 #3  0x00007f8b208d02d6 in log_assert_failed (text=0x7f8b210009e0 "e->state != SD_EVENT_FINISHED", file=0x7f8b20fff403 "src/libsystemd/sd-event/sd-event.c",
     line=1252, func=0x7f8b21004400 <__func__.154> "sd_event_add_io") at ../src/basic/log.c:948
 #4  0x00007f8b208d0457 in log_assert_failed_return (text=0x7f8b210009e0 "e->state != SD_EVENT_FINISHED",
     file=0x7f8b20fff403 "src/libsystemd/sd-event/sd-event.c", line=1252, func=0x7f8b21004400 <__func__.154> "sd_event_add_io") at ../src/basic/log.c:967
 #5  0x00007f8b20c7d102 in sd_event_add_io (e=0x617000000080, ret=0x60c000000a20, fd=11, events=1, callback=0x7dfd85 <ipv4acd_on_packet>,
     userdata=0x60c000000a00) at ../src/libsystemd/sd-event/sd-event.c:1252
 #6  0x00000000007e3934 in sd_ipv4acd_start (acd=0x60c000000a00, reset_conflicts=true) at ../src/libsystemd-network/sd-ipv4acd.c:597
 #7  0x00000000007e72b9 in ipv4ll_start_internal (ll=0x6080000006a0, reset_generation=true) at ../src/libsystemd-network/sd-ipv4ll.c:278
 #8  0x00000000007e7462 in sd_ipv4ll_start (ll=0x6080000006a0) at ../src/libsystemd-network/sd-ipv4ll.c:298
 #9  0x00000000006047a1 in dhcp4_handler (client=0x617000000400, event=0, userdata=0x61a000000680) at ../src/network/networkd-dhcp4.c:1183
 #10 0x000000000075b1ed in client_notify (client=0x617000000400, event=0) at ../src/libsystemd-network/sd-dhcp-client.c:783
 #11 0x000000000075bf8d in client_stop (client=0x617000000400, error=0) at ../src/libsystemd-network/sd-dhcp-client.c:821
 #12 0x000000000077710f in sd_dhcp_client_stop (client=0x617000000400) at ../src/libsystemd-network/sd-dhcp-client.c:2388
 #13 0x000000000065cdd1 in link_stop_engines (link=0x61a000000680, may_keep_dhcp=true) at ../src/network/networkd-link.c:336
 #14 0x000000000041f214 in manager_free (m=0x618000000080) at ../src/network/networkd-manager.c:613
 #15 0x00000000004124e3 in manager_freep (p=0x7f8b1c800040) at ../src/network/networkd-manager.h:128
 #16 0x00000000004139f6 in run (argc=1, argv=0x7ffffe4522e8) at ../src/network/networkd.c:24
 #17 0x0000000000413b20 in main (argc=1, argv=0x7ffffe4522e8) at ../src/network/networkd.c:119
---
Prompted by https://github.com/systemd/systemd/pull/30049#issuecomment-1844087965.

23 months agotest: check if resolved exits cleanly 30406/head
Yu Watanabe [Thu, 7 Dec 2023 06:19:10 +0000 (15:19 +0900)] 
test: check if resolved exits cleanly

23 months agoresolve: do not trigger assertion on exit
Yu Watanabe [Thu, 7 Dec 2023 05:28:12 +0000 (14:28 +0900)] 
resolve: do not trigger assertion on exit

By making assert_return() critical, we observe the following:
---
 Program received signal SIGABRT, Aborted.
 0x00007f01320b0884 in __pthread_kill_implementation () from /lib64/libc.so.6
 (gdb) bt
 #0  0x00007f01320b0884 in __pthread_kill_implementation ()
    from /lib64/libc.so.6
 #1  0x00007f013205fafe in raise () from /lib64/libc.so.6
 #2  0x00007f013204887f in abort () from /lib64/libc.so.6
 #3  0x00007f01338d02d6 in log_assert_failed (
     text=0x7f01340009e0 "e->state != SD_EVENT_FINISHED",
     file=0x7f0133fff403 "src/libsystemd/sd-event/sd-event.c", line=1399,
     func=0x7f01340045a0 <__func__.148> "sd_event_add_time")
     at ../src/basic/log.c:948
 #4  0x00007f01338d0457 in log_assert_failed_return (
     text=0x7f01340009e0 "e->state != SD_EVENT_FINISHED",
     file=0x7f0133fff403 "src/libsystemd/sd-event/sd-event.c", line=1399,
     func=0x7f01340045a0 <__func__.148> "sd_event_add_time")
     at ../src/basic/log.c:967
 #5  0x00007f0133c7ed83 in sd_event_add_time (e=0x617000022280,
     ret=0x610000007e98, clock=7, usec=24054941030, accuracy=0,
     callback=0x4625b4 <on_announcement_timeout>, userdata=0x610000007e40)
     at ../src/libsystemd/sd-event/sd-event.c:1399
 #6  0x00007f0133c7f725 in sd_event_add_time_relative (e=0x617000022280,
     ret=0x610000007e98, clock=7, usec=1000000, accuracy=0,
     callback=0x4625b4 <on_announcement_timeout>, userdata=0x610000007e40)
     at ../src/libsystemd/sd-event/sd-event.c:1462
 #7  0x0000000000464cac in dns_scope_announce (scope=0x610000007e40, goodbye=true) at ../src/resolve/resolved-dns-scope.c:1530
 #8  0x0000000000504d08 in link_free (l=0x612000023d40) at ../src/resolve/resolved-link.c:83
 #9  0x000000000052dbbd in manager_free (m=0x619000000a80) at ../src/resolve/resolved-manager.c:697
 #10 0x0000000000562328 in manager_freep (p=0x7f012f800040) at ../src/resolve/resolved-manager.h:198
 #11 0x000000000056315a in run (argc=1, argv=0x7fff22b06468) at ../src/resolve/resolved.c:25
 #12 0x0000000000563284 in main (argc=1, argv=0x7fff22b06468) at ../src/resolve/resolved.c:99
---
Prompted by https://github.com/systemd/systemd/pull/30049#issuecomment-1844087965.

23 months agosystemctl: fix typo
Yu Watanabe [Sun, 10 Dec 2023 05:26:30 +0000 (14:26 +0900)] 
systemctl: fix typo

Follow-up for 329050c5e2c7e9561699f87b5edb72edd0d54c96.

23 months agonetworkctl: fix typo
Yu Watanabe [Sun, 10 Dec 2023 05:25:31 +0000 (14:25 +0900)] 
networkctl: fix typo

Follow-up for 2b98926f9809eb858a5abe4f64ebd067df5059d5.

23 months agocore/executor: do destruct static variables and selinux before exiting
Mike Yuan [Fri, 8 Dec 2023 16:06:16 +0000 (00:06 +0800)] 
core/executor: do destruct static variables and selinux before exiting

I was wondering why I couldn't trigger the assertion in safe_fclose()
when submitting #30251. It turned out that the static destructor was
not run at all :/

Replace main() with a minimized version of main-func.h. This also
prevents emitting negative exit codes.

23 months agoMerge pull request #30399 from YHNdnzj/memory-accounting-always-peak
Yu Watanabe [Sun, 10 Dec 2023 05:11:05 +0000 (14:11 +0900)] 
Merge pull request #30399 from YHNdnzj/memory-accounting-always-peak

systemctl-show: always show memory peak if available

23 months agohibernate-util: de-duplicate clear_efi_hibernate_location
Mike Yuan [Sat, 9 Dec 2023 14:34:43 +0000 (22:34 +0800)] 
hibernate-util: de-duplicate clear_efi_hibernate_location

23 months agoMerge pull request #30400 from bluca/coverity
Yu Watanabe [Sun, 10 Dec 2023 05:07:37 +0000 (14:07 +0900)] 
Merge pull request #30400 from bluca/coverity

Assorted coverity fixes

23 months agotest-network: add test case for issue #30403 30404/head
Yu Watanabe [Sun, 10 Dec 2023 05:04:28 +0000 (14:04 +0900)] 
test-network: add test case for issue #30403

23 months agonetwork/route: fix reachability check when peer address is specified
Yu Watanabe [Sun, 10 Dec 2023 04:56:46 +0000 (13:56 +0900)] 
network/route: fix reachability check when peer address is specified

When an address with peer address is specified, the kernel by default
adds the prefix route for the peer address. When ManageForeignRoute=no
is set, then we also needs to check the prefix for the peer address.

Fixes #30403.

23 months agotest-login: remove dead code 30400/head
Luca Boccassi [Sat, 9 Dec 2023 13:10:18 +0000 (13:10 +0000)] 
test-login: remove dead code

HANDLE_SLEEP is == _HANDLE_ACTION_SLEEP_LAST and the loop is bounded
by < _HANDLE_ACTION_SLEEP_LAST, so no need to check for it

CID#1529414

23 months agologind: use ASSERT_PTR to validate result before use
Luca Boccassi [Sat, 9 Dec 2023 13:04:51 +0000 (13:04 +0000)] 
logind: use ASSERT_PTR to validate result before use

handle_action_lookup() in general can return NULL, but not
here as the handle is checked before, so add an assert.

CID#1529415
CID#1529416

23 months agosystemctl: fix copy/paste
Luca Boccassi [Sat, 9 Dec 2023 12:58:48 +0000 (12:58 +0000)] 
systemctl: fix copy/paste

on_circle is set twice to the same value

CID#1529418

23 months agojournal-remote: set upper length bound when parsing incoming headers
Luca Boccassi [Sat, 9 Dec 2023 12:09:42 +0000 (12:09 +0000)] 
journal-remote: set upper length bound when parsing incoming headers

CID#1529420

23 months agosystemctl-show: always show memory peak if available 30399/head
Mike Yuan [Sat, 9 Dec 2023 12:19:57 +0000 (20:19 +0800)] 
systemctl-show: always show memory peak if available

23 months agocore/cgroup: cache the last memory usage values before destroying cgroup
Mike Yuan [Sat, 9 Dec 2023 12:10:31 +0000 (20:10 +0800)] 
core/cgroup: cache the last memory usage values before destroying cgroup

Currently, memory accounting values are only cached if it was queued
at least once before destroying cgroup. Let's always cache it like
what we already do for CPU usage.

Preparation for later changes.

23 months agomount: check that MountParameters is valid before use
Luca Boccassi [Sat, 9 Dec 2023 11:56:50 +0000 (11:56 +0000)] 
mount: check that MountParameters is valid before use

Follow-up for 6c75eff6afd90

CID#1530430

23 months agoNEWS: fix typo s/show/shown/
Florian Schmaus [Sat, 9 Dec 2023 11:42:17 +0000 (12:42 +0100)] 
NEWS: fix typo s/show/shown/

23 months agoMerge pull request #30387 from mrc0mmand/TEST-17-tweaks
Luca Boccassi [Sat, 9 Dec 2023 11:06:37 +0000 (11:06 +0000)] 
Merge pull request #30387 from mrc0mmand/TEST-17-tweaks

test: a couple of tweaks for TEST-17-UDEV

23 months agoMerge pull request #30384 from YHNdnzj/rename-process
Mike Yuan [Sat, 9 Dec 2023 11:04:07 +0000 (19:04 +0800)] 
Merge pull request #30384 from YHNdnzj/rename-process

core/executor: save argv for later use by rename_process()

23 months agoMerge pull request #30362 from mrc0mmand/cat-highlight-directives
Yu Watanabe [Sat, 9 Dec 2023 09:54:46 +0000 (18:54 +0900)] 
Merge pull request #30362 from mrc0mmand/cat-highlight-directives

shared: highlight directives when dumping configs

23 months agoRevert "packit: don't take ownership of /etc/ssh/sshd_config.d/"
Zbigniew Jędrzejewski-Szmek [Fri, 8 Dec 2023 17:40:15 +0000 (18:40 +0100)] 
Revert "packit: don't take ownership of /etc/ssh/sshd_config.d/"

This reverts commit 9f7d1899235a237ba7a6000479cbf3965b224fd9.
systemd.spec was updated in [1], so we don't need this here anymore.

[1] https://src.fedoraproject.org/rpms/systemd/c/245a2587e095a08a61af4e48f7daa57dee3629e6

23 months agotest_ukify: raise timeout 30389/head
Zbigniew Jędrzejewski-Szmek [Fri, 8 Dec 2023 18:17:14 +0000 (19:17 +0100)] 
test_ukify: raise timeout

With a sufficiently large initrd, the tests take 25 s on my laptop.
Normally, they'd be quicker, but since we use what we find on the
system, we don't control this. Let's raise the timeout to reduce the
chances of a spurious failure.

23 months agotest_ukify: formatting
Zbigniew Jędrzejewski-Szmek [Fri, 8 Dec 2023 18:15:50 +0000 (19:15 +0100)] 
test_ukify: formatting

23 months agotest_ukify: explicitly remove big temporary directories
Zbigniew Jędrzejewski-Szmek [Fri, 8 Dec 2023 18:10:09 +0000 (19:10 +0100)] 
test_ukify: explicitly remove big temporary directories

pytest intentionally keeps around a limited number of the previous test
temporary directories [1]. This is generally OK, but in our tests that generate
initrds, we create a few very large files (both the initrd and kernel in a few
copies), which quickly adds up. I had a particularly large initrd (because of
some mkosi-initrd shenanigans), and I unded up with dozens of gigabytes of
temporary files from the tests. Let's just nuke the dirs where we write
kernel data.

[1] https://github.com/pytest-dev/pytest/issues/543

23 months agotest_ukify: use Path-based fixtures
Zbigniew Jędrzejewski-Szmek [Fri, 8 Dec 2023 18:01:27 +0000 (19:01 +0100)] 
test_ukify: use Path-based fixtures

Quoting https://docs.pytest.org/en/stable/how-to/tmp_path.html#the-default-base-temporary-directory:
> The tmpdir and tmpdir_factory fixtures are similar to tmp_path and
> tmp_path_factory, but use/return legacy py.path.local objects rather than
> standard pathlib.Path objects.
>
> These days, it is preferred to use tmp_path and tmp_path_factory.

23 months agotest: backup /etc/udev/udev.conf only if it exists 30387/head
Frantisek Sumsal [Fri, 8 Dec 2023 17:38:41 +0000 (18:38 +0100)] 
test: backup /etc/udev/udev.conf only if it exists

On Fedora systemd recently moved all of its configuration files to
/usr/lib/ [0], so make sure we account for this case as well.

[   42.450325] testsuite-17.sh[800]: + mkdir -p /run/udev/rules.d
[   42.466504] testsuite-17.sh[800]: + cp -f /etc/udev/udev.conf /etc/udev/udev.conf.bckp
[   42.503348] testsuite-17.sh[802]: cp: cannot stat '/etc/udev/udev.conf': No such file or directory

[0] https://src.fedoraproject.org/rpms/systemd/c/29eb35530b29232eed65718d0cd96d67cd7ffd6b?branch=rawhide

23 months agotest: reset systemd-udevd.service restart counter
Frantisek Sumsal [Fri, 8 Dec 2023 17:01:42 +0000 (18:01 +0100)] 
test: reset systemd-udevd.service restart counter

Since we restart systemd-udevd here a couple of times, we might hit the
rate limit in later tests:

[   26.028355] testsuite-17.sh[2074]: + udevadm control -e
[   26.028355] testsuite-17.sh[2074]: + udevadm control -l emerg
[   26.126160] systemd[1]: systemd-udevd.service: Start request repeated too quickly.
[   26.126213] systemd[1]: systemd-udevd.service: Failed with result 'start-limit-hit'.
[   26.140310] systemd[1]: Failed to start systemd-udevd.service.
[   26.140897] systemd[1]: systemd-udevd-control.socket: Failed with result 'service-start-limit-hit'.
[   26.141286] systemd[1]: systemd-udevd-kernel.socket: Failed with result 'service-start-limit-hit'.
[   26.142225] testsuite-17.sh[2074]: + udevadm control -l alert
[   26.149206] udevadm[2088]: Failed to send request to set log level: No such file or directory

Follow-up to: 6ef512c0bb

23 months agocore/executor: save argv for later use by rename_process() 30384/head
Mike Yuan [Fri, 8 Dec 2023 13:14:11 +0000 (21:14 +0800)] 
core/executor: save argv for later use by rename_process()

Partially fixes #30352

23 months agocore/exec-invoke: voidify one rename_process call
Mike Yuan [Fri, 8 Dec 2023 11:46:53 +0000 (19:46 +0800)] 
core/exec-invoke: voidify one rename_process call

23 months agorepart: Don't look for --make-ddi= definitions inside --root=
Daan De Meyer [Thu, 7 Dec 2023 13:26:10 +0000 (14:26 +0100)] 
repart: Don't look for --make-ddi= definitions inside --root=

It doesn't really make sense to go looking for these inside the
given root directory. While we should resolve specifiers and such
based on the given root directory, let's look up the image definitions
on the host system as there's a good chance they're coupled to the
repart version we're using so there's all kinds of chances for problems
if we use the definitions from the image we're building instead of those
from the host.

23 months agocore: create workdir/upperdir when mounting a Type=overlay mount unit
Luca Boccassi [Thu, 7 Dec 2023 23:19:36 +0000 (23:19 +0000)] 
core: create workdir/upperdir when mounting a Type=overlay mount unit

So far we created the target directory, and the source for bind mounts,
but not workdir/upperdir for overlays, so it has to be done separately
and strictly before the unit is started, which is annoying. Check the
options when creating directories, and if upper/work directories are
specified, create them.

23 months agoinstall: don't translate unit instances to paths when reenabling them
Frantisek Sumsal [Wed, 6 Dec 2023 15:24:21 +0000 (16:24 +0100)] 
install: don't translate unit instances to paths when reenabling them

For unit instances install_info_discover() returns path to the template,
which then generates confusing errors when passed to
do_unit_file_enable():

~# build/systemctl --root=/tmp/systemctl-test.N9ysbz reenable templ1@two.service
Unit name: templ1@two.service; p: /etc/systemd/system/templ1@.service
Removed "/tmp/systemctl-test.N9ysbz/etc/systemd/system/services.target.wants/templ1@two.service".
Failed to reenable templ1@.service, destination unit services.target is a non-template unit.

This can also be seen with a different reproducer using getty@.service
and a simple bind mount to / - there's no error this time, but it tries
to create a symlink for the default instance (from DefaultInstance=tty1),
which is also incorrect:

~# SYSTEMD_LOG_LEVEL=debug systemctl --root /mnt/bindroot/ reenable getty@test.service
Symlink /mnt/bindroot/etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service already exists

Follow-up to: 29a7c59abbe
Resolves: #24740

23 months agocore: relax dependency on RootImage= storage from Requires= to Wants=
Luca Boccassi [Mon, 27 Nov 2023 23:32:31 +0000 (23:32 +0000)] 
core: relax dependency on RootImage= storage from Requires= to Wants=

If a unit is running in an image and wants to survive a soft-reboot,
then it can't be deactivated by the storage of the image going away.
Relax the dependency to a Wants=. Access to the image is not needed
when the unit is running anyway, so downgrade to Wants=.

23 months agocore: do not make private /dev/ read-only too soon
Luca Boccassi [Thu, 7 Dec 2023 22:19:11 +0000 (22:19 +0000)] 
core: do not make private /dev/ read-only too soon

The read-only bit is flipped after setting up all the mounts, so that
bind mounts can be added. Remove the early config, and add a unit
test.

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

23 months agorepart: Re-open file descriptor to partition target after mkfs
Daan De Meyer [Tue, 5 Dec 2023 13:56:00 +0000 (14:56 +0100)] 
repart: Re-open file descriptor to partition target after mkfs

The mkfs binary might unlink the path we give it and replace it with
a new file so let's make sure that our fd points to any new file rather
than the old deleted file.

Specifically this fixes erofs partition generation.

23 months agotmpfiles.d/systemd-nologin.conf: use f+ instead of F (deprecated)
Mike Yuan [Thu, 7 Dec 2023 15:14:35 +0000 (23:14 +0800)] 
tmpfiles.d/systemd-nologin.conf: use f+ instead of F (deprecated)

Fixes #30368