![]() If /sys/class/OOO node is created and destroyed during booting (kernle driver initialization fails), systemd-udev-trigger.service fails due to race condition. ***** race condition *********************************************************************************** 1. kernel driver create /sys/class/OOO 2. systemd-udev-trigger.service execues "/usr/bin/udevadm trigger --type=devices --action=add" 3. device_enumerator_scan_devices() => enumerator_scan_devices_all() => enumerator_scan_dir("class") => opendir("/sys/class") and iterate all subdirs ==> enumerator_scan_dir_and_add_devices("/sys/class/OOO") 4. kernel driver fails and destroy /sys/class/OOO 5. enumerator_scan_dir_and_add_devices("/sys/class/OOO") fails in opendir("/sys/class/OOO") 6. "systemd-udev-trigger.service" fails 7. udev coldplug fails and some device units not ready 8. mount units asociated with device units fail 9. local-fs.target fails 10. enters emergency mode ******************************************************************************************************** ***** status of systemd-udev-trigger.service unit ****************************************************** $ systemctl status systemd-udev-trigger.service systemd-udev-trigger.service - udev Coldplug all Devices Loaded: loaded (/usr/lib/systemd/system/systemd-udev-trigger.service; static; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2020-01-02 13:16:54 KST; 22min ago Docs: man:udev(7) man:systemd-udevd.service(8) Process: 2162 ExecStart=/usr/bin/udevadm trigger --type=subsystems --action=add (code=exited, status=0/SUCCESS) Process: 2554 ExecStart=/usr/bin/udevadm trigger --type=devices --action=add (code=exited, status=1/FAILURE) Main PID: 2554 (code=exited, status=1/FAILURE) Jan 02 13:16:54 localhost udevadm[2554]: Failed to scan devices: No such file or directory Jan 02 13:16:54 localhost systemd[1]: systemd-udev-trigger.service: Main process exited, code=exited, status=1/FAILURE Jan 02 13:16:54 localhost systemd[1]: systemd-udev-trigger.service: Failed with result 'exit-code'. Jan 02 13:16:54 localhost systemd[1]: Failed to start udev Coldplug all Devices. ******************************************************************************************************* ***** journal log with Environment=SYSTEMD_LOG_LEVEL=debug in systemd-udev-trigger.service *********** Jan 01 21:57:20 localhost udevadm[2039]: sd-device-enumerator: Scanning /sys/bus Jan 01 21:57:20 localhost udevadm[2522]: sd-device-enumerator: Scan all dirs Jan 01 21:57:20 localhost udevadm[2522]: sd-device-enumerator: Scanning /sys/bus Jan 01 21:57:21 localhost udevadm[2522]: sd-device-enumerator: Scanning /sys/class Jan 01 21:57:21 localhost udevadm[2522]: sd-device-enumerator: Failed to scan /sys/class: No such file or directory Jan 01 21:57:21 localhost udevadm[2522]: Failed to scan devices: No such file or directory ******************************************************************************************************* |
||
---|---|---|
.github | ||
.lgtm/cpp-queries | ||
.mkosi | ||
catalog | ||
coccinelle | ||
docs | ||
factory/etc | ||
hwdb.d | ||
man | ||
modprobe.d | ||
network | ||
po | ||
presets | ||
rules.d | ||
semaphoreci | ||
shell-completion | ||
src | ||
sysctl.d | ||
sysusers.d | ||
test | ||
tmpfiles.d | ||
tools | ||
travis-ci | ||
units | ||
xorg | ||
.clang-format | ||
.ctags | ||
.dir-locals.el | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.lgtm.yml | ||
.mailmap | ||
.travis.yml | ||
.vimrc | ||
.ycm_extra_conf.py | ||
azure-pipelines.yml | ||
configure | ||
LICENSE.GPL2 | ||
LICENSE.LGPL2.1 | ||
Makefile | ||
meson.build | ||
meson_options.txt | ||
mkosi.build | ||
NEWS | ||
README | ||
README.md | ||
TODO | ||
zanata.xml |
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list or join our IRC channel.
Stable branches with backported patches are available in the stable repo.