[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