1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-31 05:47:30 +03:00

5528 Commits

Author SHA1 Message Date
John A. Leuenhagen
4ca75488d9 TEST-74-AUX-UTILS: add tests for 'run0 -D' 2024-10-15 18:59:44 +09:00
Lennart Poettering
6f9826b6d8
Merge pull request #34723 from poettering/machined-pidref-more
machined: switch remaining Varlink overs over to use json_dispatch_pidref() and friends
2024-10-15 11:37:39 +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
d2c1451b73 machine: lookup_machine_by_name_or_pid() may return 1 on error and it is already replied
Follow-ups for 1bd979dddbb6ed3ffe410d78a7ff80cbb1c42a64 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
49c46fbaf1 TEST-17-UDEV: check if udev database file is removed on remove event 2024-10-15 10:51:25 +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 164af66f9abdfd8935098d9f10c746ff29dea7df.
2024-10-15 05:58:25 +09:00
Luca Boccassi
4881dd5cf5
Merge pull request #34749 from yuwata/network-address-parse-broadcast
network/address: fix parser for Broadcast=
2024-10-14 12:31:03 +01:00
Lennart Poettering
6bca1a7c6c machined: port all varlink APIs over to new PidRef serialization 2024-10-14 12:47:17 +02:00
Ivan Kruglov
62593c6abb machine: tests for varlink interfaces
- io.systemd.MachineImage.List
- io.systemd.MachineImage.Update
2024-10-14 11:09:18 +02: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 5d15c7b19cae6d3332d4e213c380e0fcc1317a2c.

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
Ronan Pigott
20c0711d8e busctl: add a test for busctl wait 2024-10-12 23:21:37 -07:00
Yu Watanabe
acadc9a849 TEST-64-UDEV-STORAGE: insert udevadm settle more
Hopefully fixes #34073.
2024-10-13 05:43:32 +09:00
Yu Watanabe
4ca7b55329 TEST-58-REPART: drop duplicated inclusion of util.sh 2024-10-13 05:43:32 +09:00
Yu Watanabe
4e3f16b5ef mkosi: replace PackageManagerTrees= with SandboxTrees= 2024-10-13 05:43:32 +09:00
Ryan Wilson
1863eecff2 Add integration test for ExtraFileDescriptors after daemon-reexec
This commit adds a corresponding integration test for ExtraFileDescriptors
after systemctl daemon-reexec. This ensures systemd keeps the file
descriptors while the service manager is restarting and we don't lose
ability to restart the service correctly.
2024-10-12 20:17:45 +02:00
Yu Watanabe
39b2ee5369
Merge pull request #34591 from teknoraver/timer
timer: introduce DeferReactivation setting
2024-10-12 08:12:38 +09:00
Matteo Croce
9784ed760e timer: add unit tests for DeferReactivation
Create a unit test for systemd timer DeferReactivation config option.
The test works by creating a timer which fires every 5 seconds and
starts an unit which runs for 5 seconds.
With DeferReactivation=true, the timer must fire every 5+5 seconds,
instead of the 5 it fires normally.

As we need at least two timer runs to check if the delta is correct,
the test duration on success will be at least 20 seconds.
To be safe, the test script waits 35 seconds: this is enough to get
at least three runs but low enough to avoid clogging the CI.
2024-10-11 22:54:16 +02:00
Arthur Shau
cc0ab8c810 timer: introduce DeferReactivation setting
By default, in instances where timers are running on a realtime schedule,
if a service takes longer to run than the interval of a timer, the
service will immediately start again when the previous invocation finishes.
This is caused by the fact that the next elapse is calculated based on
the last trigger time, which, combined with the fact that the interval
is shorter than the runtime of the service, causes that elapse to be in
the past, which in turn means the timer will trigger as soon as the
service finishes running.

This behavior can be changed by enabling the new DeferReactivation setting,
which will cause the next calendar elapse to be calculated based on when
the trigger unit enters inactivity, rather than the last trigger time.

Thus, if a timer is on an realtime interval, the trigger will always
adhere to that specified interval.
E.g. if you have a timer that runs on a minutely interval, the setting
guarantees that triggers will happen at *:*:00 times, whereas by default
this may skew depending on how long the service runs.

Co-authored-by: Matteo Croce <teknoraver@meta.com>
2024-10-11 22:54:16 +02:00
Yu Watanabe
5a22b27b5c TEST-17-UDEV: also check if /run/udev/links.lock/ is empty on settle 2024-10-12 05:34:29 +09:00
Yu Watanabe
b364af59f0 udev-node: drop workaround for by-diskseq symlinks
This effectively reverts 09373c1a50297079e6b0447ea97af4e9a60f77fa,
as stack directories and lock files are removed by udev workers on
unlocking.
2024-10-12 05:34:07 +09:00
Lennart Poettering
0fc530d157 machined: make List() varlink method return a full pidref JSON object for leader
This new call has not been released yet, hence we can still change the
encoding of the "leader" field.
2024-10-11 10:48:07 +02:00
WilliButz
e16153a403
test/repart: add test case for hash size derived from max data size 2024-10-09 13:20:14 +02:00
Luca Boccassi
d07e1e07fe
Merge pull request #34672 from yuwata/timestamp
analyze: fix timestamp
2024-10-08 19:21:28 +01:00
Lennart Poettering
ac42b151f8
Merge pull request #34556 from ryantimwilson/extra-fds
Add ExtraFileDescriptor property to StartTransientUnit dbus API
2024-10-08 13:26:59 +02:00
Yu Watanabe
25999f868f test: add test cases for timestamp with time zone 2024-10-08 19:36:38 +09:00
Luca Boccassi
0d7f5a9ae6 mkosi: mark test as skipped when QEMU crashes
On Ubuntu/Debian infrastructure QEMU crashes a lot, so mark the test
as skipped in that case as there's nothing we can do about it and
we shouldn't mark runs as failed
2024-10-07 23:58:38 +01:00
Ryan Wilson
3543456f84 Add ExtraFileDescriptor property to StartTransientUnit dbus API
This adds the ExtraFileDescriptor property to StartTransient dbus API
with format "a(hs)" - array of (file descriptor, name) pairs. The FD
will be passed to the unit via sd_notify like Socket and OpenFile.

systemctl show also shows ExtraFileDescriptorName for these transient
units. We only show the name passed to dbus as the FD numbers will
change once passed over the unix socket and are duplicated, so its
confusing to display the numbers.

We do not add this functionality for systemd-run or general systemd
service units as it is not useful for general systemd services.
Arguably, it could be useful for systemd-run in bash scripts but we
prefer to be cautious and not expose the API yet.

Fixes: #34396
2024-10-07 09:01:48 -07:00
Daan De Meyer
a417592b06
Merge pull request #34472 from ikruglov/ikruglov/io-systemd-Machine
machine: implement varlink interfaces io.systemd.Machine.{List, Unregister, Terminate, Kill}
2024-10-07 17:22:31 +02:00
Ivan Kruglov
164af66f9a machine: tests for varlink interfaces
- io.systemd.Machine.List
- io.systemd.Machine.Kill
- io.systemd.Machine.Terminate
- io.systemd.Machine.Register
- io.systemd.Machine.Unregister
2024-10-07 14:50:17 +02:00
Luca Boccassi
68f0c80bc4
Merge pull request #34644 from yuwata/udev-node-diskseq
udev-node: do not create stack directory for by-diskseq symlink
2024-10-07 12:17:28 +01:00
Thomas Blume
5540c37bb8 test: set TEST_NESTED_KVM as default 2024-10-07 11:40:17 +02:00
Yu Watanabe
51e905b9fa
Merge pull request #34408 from Werkov/fix-device-limits
core/cgroup: Apply IODevice*= directives in configured order
2024-10-07 14:05:44 +09:00
Yu Watanabe
88d186e482 test: add test case for issue #34637 2024-10-07 09:56:26 +09:00
Michal Koutný
3216377433 test: Add test for per-device cgroup properties
Reported in #34126
2024-10-04 22:04:46 +02:00
Daan De Meyer
16020c3324 ukify: Rework multi-profile UKIs
The API introduced in https://github.com/systemd/systemd/pull/34295
is less than ideal:

- It doesn't consider signing at all (ukify can't sign separately yet)
- Measurement is completely broken (all profile sections are marked to
  not be measured)
- It focuses on a very niche use case of extending existing UKIs and makes
  the more common use case of building a UKI with several profiles included
  much harder than needed.

Let's instead rework the API to focus on the primary use case of building
a UKI with multiple profiles added to it immediately. We require the profiles
to be built upfront as separate PE binaries with UKI. There's no need to sign
or measure these, they're solely vehicles for profile sections. This saves us
from having to complicate the command line and config parsing to support defining
multiple profiles.

To add the profiles when building a UKI, we introduce the new --add-profile
switch which takes a path to a PE binary describing a profile. The required
sections are read from each PE binary, measured and added as a profile.

The integration test is disabled until the new API is merged and exposed in
mkosi so that building a UKI with profiles can be left to mkosi and the integration
test will only test the switching between profiles and not the building of UKIs
with profiles.
2024-10-04 11:36:25 +02:00
Lennart Poettering
96c9e4a2de test: add --more flag when enumerating via List varlink method
The call returns multiple entries, hence should be called with `--more`.
2024-10-02 09:22:52 +02:00
Daniel Dawson
0c96911afb systemd-integritysetup: accept integrity-algorithm=xxhash64
Signed-off-by: Daniel Dawson <danielcdawson@gmail.com>
2024-10-01 11:16:14 +02:00
Mike Yuan
6fd58537e5
Merge pull request #34548 from SimonPilkington/fix-creds-cat
creds: fix cat with encrypted credentials
2024-09-27 20:51:57 +02:00
Ivan Kruglov
e826a8bed4 machine: resolve race condition in TEST-13-NSPAWN.machinectl.sh
I encountered this race condition while working on TEST-13-NSPAWN.varlinkctl.sh.
The long-running machine's init script sometimes does not have time to start and
register signals. As result, occasiounally failed tests.
2024-09-25 12:23:12 +02:00
Simon Pilkington
32951fe4de creds: fix cat with encrypted credentials
Fixes: https://github.com/systemd/systemd/issues/34547
2024-09-25 11:25:48 +02:00
Daan De Meyer
f4faac2073 test: Run TEST-74-AUX-UTILS in virtual machine
Various tests skip themselves when running in a container so make
sure the test runs in a virtual machine so we get full coverage.
2024-09-19 14:56:34 +09:00
Yu Watanabe
2bcc2a89f3 test: create .netdev file at last
Previously, when the test ran on mkosi, then networkd was not masked, and
might be already started. In that case, the interface test2 would be created
soon after the .netdev file is created, and the .link file would not be
applied to the interface. Hence, the later test case for
'networkctl cat @test2:link' would fail.

This make networkd always started at the beginning of the test, and
.netdev file created after .link file is created. So, .link file is
always applied to the interface created by the .netdev file.
2024-09-19 14:50:10 +09:00
Frantisek Sumsal
cd57920fbf test: drop removed SCSI passthrough feature
This feature has been deprecated since QEMU 5.0 and finally removed in
QEMU 9.1 [0] which now causes issues when running the storage tests on
latest Arch:

------ testcase_long_sysfs_path: BEGIN ------
...
qemu-system-x86_64: -device virtio-blk-pci,drive=drive0,scsi=off,bus=pci_bridge25: Property 'virtio-blk-pci.scsi' not found
E: qemu failed with exit code 1

[0] a271b8d7b2
2024-09-19 08:14:39 +09:00
Bryan Gurney
8c009371cd TEST-64-UDEV-STORAGE: remove obsolete NVMe symlink for nvme_subsystem
In the nvme_subsystem test, there are only namespace IDs 16 and 17,
so there would no longer be an "obsolete" symlink created, since this
test scenaro does not create a namespace with ID 1.

Signed-off-by: Bryan Gurney <bgurney@redhat.com>
2024-09-18 16:59:59 -04:00
Daan De Meyer
fc5037e7d7
Merge pull request #34464 from yuwata/test-space-in-path
test: allow to run tests under directory that contains spaces
2024-09-18 08:50:38 +02:00
Yu Watanabe
13f6ec7ce7 test: quote paths to executables
Fixes #34459.
2024-09-18 09:47:04 +09:00
Yu Watanabe
7ac1ad90d0
Merge pull request #34460 from yuwata/test-86-follow-ups
test: follow-ups for TEST-86
2024-09-18 09:31:17 +09:00
Yu Watanabe
4f2975385f
Merge pull request #34040 from AdrianVovk/repart-dollar-boot
repart: Implement $BOOT support
2024-09-18 05:09:20 +09:00