[systemd-devel] `Found ordering cycle on _SERVICE_` loops due to `local-fs.target` with `Requires` instead of `Wants` for mounts generated from `/etc/fstab`
Alexey Matyushin
airgunster at protonmail.ch
Tue Apr 24 23:26:21 UTC 2018
Hi there,
I initially created a bug report for this topic (apologize, Lennart), but would like to discuss this topic in mode detail here (as suggested by Lennart), and really appreciate your opinion here,
I've seen that once you define network (NFS) mount together with local (referring to that network (NFS) mount) mount in `/etc/fstab` then it will always produce dependency loops (due to `local-fs.target`),
Details and how to reproduce it,
# systemctl --version
systemd 219
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
# cat /etc/*release
CentOS Linux release 7.4.1708 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.4.1708 (Core)
### Expected behaviour you didn't see
All local mounts (dependencies) are defined for `local-fs.target` with `Wants` parameter.
### Unexpected behaviour you saw
All local mounts are defined for `local-fs.target` with `Requires` parameter instead of `Wants` parameter.
### Steps to reproduce the problem
1. Add NFS mount into `/etc/fstab`, example
```server.domain:/ /mnt/test nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0```
2. Add local mount with dependency on NFS mount, example,
```/mnt/some_other_mount/ /mnt/test/media/ none bind,rw 0 0```
Example of `/etc/fstab`,
```
#
# /etc/fstab
# Created by anaconda on Mon Nov 27 22:04:35 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=2f15c101-f516-4ee8-a4b7-89ad880610db / xfs defaults 0 0
server.domain:/ /mnt/test nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0
/mnt/some_other_mount/ /mnt/test/medi none bind,rw 0 0
```
Question,
I know that this issue with dependency loop on `local-fs.target` can be corrected by `nofail`/`_netdev` options in `/etc/fstab` file for all local shares (as then all local mounts will be only wanted (`Wants` parameter), and not required (`Requires` parameter) by `local-fs.target), but my question is about behavior without these options specified, do you think that this (explained) behavior is correct?
This looks for me as quite dangerous behavior (without `nofail`/`_netdev` options) since in this scenario we may delete start jobs for up to 10 different services/targets (including network stack (`network.service`)), here is the full list of possible services/targets which may never start due to this issue (ordering cycle (loop)),
systemd-journal-catalog-update.service
systemd-machine-id-commit.service
systemd-tmpfiles-setup.service
rhel-import-state.service
systemd-update-done.service
auditd.service
network.service
nfs-config.service
local-fs.target
Thanks a lot in advance!
Kind regards,
Alexey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20180424/c778b996/attachment.html>
More information about the systemd-devel
mailing list