Systemd/src
Jonathon Kowalski 791cd15993 Fail RequisiteOf units with oneshots
Fixes: #11422

Oneshots going to inactive directly without ever entering UNIT_ACTIVE is
considered success. This however means that if something both Requires=
and Requisites= a unit of such nature, the verify-active job getting
merged into the start job makes it lose this property of failing the
depending jobs, as there, the start job has the result JOB_DONE on
success, so we never walk over RequisiteOf units.

This change makes sure that such units always go down. It is also only
meaningful with After=, but so is Requisite= itself. Also, we also catch
cases like a oneshot having RemainAfterExit= true making us start up
properly in such a setting, but then removing it, reloading the unit,
and restarting it. In such a case, we go down due to restart propagation
before them, and our start job waits on theirs, properly failing with
the JOB_DEPENDENCY result.

This covers cases where ConditionXYZ= creates a similar situation as
well.
2019-02-15 13:42:54 +01:00
..
ac-power
activate tree-wide: use FORK_RLIMIT_NOFILE_SAFE wherever possible 2018-12-01 12:50:45 +01:00
analyze analyze security: fix recursive call of syscall_names_in_filter() 2019-02-04 16:01:38 +01:00
ask-password
backlight backlight: handle loading truncated file 2019-02-02 16:25:32 +02:00
basic Merge pull request #9594 from filbranden/cpu_quota_period1 2019-02-15 12:11:42 +01:00
binfmt
boot boot/efi: use a wildcard section copy for final EFI generation 2019-02-09 17:51:23 +01:00
busctl busctl: shorten code a bit by using SYNTHETIC_ERRNO() 2019-02-06 13:30:53 +01:00
cgls
cgroups-agent
cgtop procfs-util: expose functionality to query total memory 2019-01-22 17:43:13 +01:00
core Fail RequisiteOf units with oneshots 2019-02-15 13:42:54 +01:00
coredump Remove 'inline' attributes from static functions in .c files (#11426) 2019-01-15 08:12:28 +01:00
cryptsetup mount/generators: do not make unit wanted by its device unit 2019-02-15 00:16:54 +08:00
debug-generator generators: define custom main func definer and use it where applicable 2018-12-12 21:58:00 +01:00
delta locale-util: prefix special glyph enum values with SPECIAL_GLYPH_ 2018-12-14 08:22:54 +01:00
detect-virt
dissect
environment-d-generator util-lib: split out env file parsing code into env-file.c 2018-12-02 13:22:29 +01:00
escape
firstboot locale-util: prefix special glyph enum values with SPECIAL_GLYPH_ 2018-12-14 08:22:54 +01:00
fsck fsck: use symbolic names where we have them 2019-01-07 17:50:39 +01:00
fstab-generator fstab-generator: remove spurious newline 2018-12-15 12:06:44 +01:00
fuzz udev: use typedef for struct udev_rules 2018-12-17 09:27:21 +01:00
getty-generator getty-generator: use the new main function definer 2018-12-12 21:58:00 +01:00
gpt-auto-generator Merge pull request #10912 from poettering/gpt-root-rw 2018-12-20 11:37:41 +01:00
hibernate-resume
hostname Merge pull request #11086 from poettering/nscd-cache-flush 2018-12-17 11:29:58 +01:00
hwdb
id128
import curl-util: fix use after free 2019-02-06 16:19:02 +01:00
initctl initctl: shorten and update code a bit 2019-01-17 16:12:38 +01:00
journal Merge pull request #11578 from keszybz/gcc-9-fixes 2019-02-07 15:25:05 +01:00
journal-remote Remove 'inline' attributes from static functions in .c files (#11426) 2019-01-15 08:12:28 +01:00
kernel-install kernel-install: fix dracut initrd detection (240 backward compatibility) (#11570) 2019-01-27 17:32:21 +01:00
libsystemd netlink: fix netlink type for routing-rule FRA_L3MDEV 2019-02-15 20:18:27 +09:00
libsystemd-network dhcp: ignore padding of 'chaddr' in DHCP server response 2019-02-15 11:41:06 +01:00
libudev Remove 'inline' attributes from static functions in .c files (#11426) 2019-01-15 08:12:28 +01:00
locale Merge pull request #11041 from yuwata/update-missing-v2 2018-12-04 16:19:02 +01:00
login login: add a missing error check for session_set_leader() 2019-02-15 11:29:34 +01:00
machine machinectl: fix argument index in error log 2019-02-04 11:03:58 +01:00
machine-id-setup
modules-load
mount Split out part of mount-util.c into mountpoint-util.c 2018-11-29 21:03:44 +01:00
network Merge pull request #11716 from ssahani/drop-autoconf-address 2019-02-15 12:17:46 +01:00
notify
nspawn tree-wide: use newa() instead of alloca() wherever we can 2019-01-26 16:17:04 +01:00
nss-myhostname nss: unportect errno before writing to NSS' *errnop 2019-02-08 10:34:47 +01:00
nss-mymachines nss: unportect errno before writing to NSS' *errnop 2019-02-08 10:34:47 +01:00
nss-resolve nss: unportect errno before writing to NSS' *errnop 2019-02-08 10:34:47 +01:00
nss-systemd nss: unportect errno before writing to NSS' *errnop 2019-02-08 10:34:47 +01:00
partition makefs: correct child process name 2018-12-01 12:50:45 +01:00
path
portable tree-wide: make sure to flush/close all bus connections when our daemons exit 2019-01-17 16:12:38 +01:00
quotacheck tree-wide: use FORK_RLIMIT_NOFILE_SAFE wherever possible 2018-12-01 12:50:45 +01:00
random-seed
rc-local-generator generators: define custom main func definer and use it where applicable 2018-12-12 21:58:00 +01:00
remount-fs remount-fs: optionally remount / writable, if we are told through an env var 2018-12-18 14:47:44 +01:00
reply-password
resolve tree-wide: use newa() instead of alloca() wherever we can 2019-01-26 16:17:04 +01:00
rfkill Detect file truncation earlier in a few places 2019-02-02 16:25:32 +02:00
run tree-wide: port various places over to STARTSWITH_SET() 2018-11-26 14:08:46 +01:00
run-generator generators: define custom main func definer and use it where applicable 2018-12-12 21:58:00 +01:00
shared core: add CPUQuotaPeriodSec= 2019-02-14 11:04:42 -08:00
sleep sleep: install default sleep.conf 2019-01-03 14:43:15 +01:00
socket-proxy tree-wide: use c99 static for array size declarations 2019-01-04 12:37:25 +01:00
stdio-bridge tree-wide: make sure to flush/close all bus connections when our daemons exit 2019-01-17 16:12:38 +01:00
sulogin-shell tree-wide: use FORK_RLIMIT_NOFILE_SAFE wherever possible 2018-12-01 12:50:45 +01:00
sysctl sysctl: Don't pass null directive argument to '%s' 2018-12-16 21:01:39 -08:00
system-update-generator system-update-generator: use the new main function definer 2018-12-12 21:58:00 +01:00
systemctl test,systemctl,nspawn: use "const char*" instead of "char*" as iterator for FOREACH_STRING() 2019-01-16 12:29:30 +01:00
systemd sd-netlink: introduce sd_netlink_message_append_sockaddr_in{,6}() 2019-01-28 12:19:29 +01:00
sysusers Merge pull request #10920 from yuwata/hashmap-destructor 2018-12-03 17:59:44 +01:00
sysv-generator generators: define custom main func definer and use it where applicable 2018-12-12 21:58:00 +01:00
test Merge pull request #9594 from filbranden/cpu_quota_period1 2019-02-15 12:11:42 +01:00
time-wait-sync
timedate timedate: refuse to set time when previous request is not finished 2019-01-15 15:15:26 +09:00
timesync timesyncd: Improve sync log message. Fixes #11548. 2019-01-24 23:52:24 +01:00
tmpfiles tree-wide: use newa() instead of alloca() wherever we can 2019-01-26 16:17:04 +01:00
tty-ask-password-agent
udev Merge pull request #11589 from yuwata/udevd-is-device-busy 2019-02-15 12:16:37 +01:00
update-done
update-utmp
user-sessions tree-wide: add whitespace between type and variable name 2018-12-04 09:29:54 +01:00
vconsole vconsole-setup: fonts copy will fail if the current terminal is in graphical mode 2018-12-13 08:30:20 +01:00
veritysetup generators: define custom main func definer and use it where applicable 2018-12-12 21:58:00 +01:00
version meson: make version a dependency and use it in libbasic 2019-01-22 14:39:38 +01:00
volatile-root Split out part of mount-util.c into mountpoint-util.c 2018-11-29 21:03:44 +01:00