Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1514370 - systemd.special(7) doesn't state that all remote file systems get the Before=remote-fs.target dependency
Summary: systemd.special(7) doesn't state that all remote file systems get the Before=...
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: systemd
Version: 7.4
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: systemd-maint
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-11-17 08:50 UTC by Renaud Métrich
Modified: 2019-03-29 07:03 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:


Attachments (Terms of Use)

Description Renaud Métrich 2017-11-17 08:50:52 UTC
Description of problem:

systemd.special(7) doesn't state that all remote file systems get the Before=remote-fs.target dependency, it only states the following:

       local-fs.target
           systemd-fstab-generator(3) automatically adds dependencies of type Before= to all mount units that refer
           to local mount points for this target unit. In addition, it adds dependencies of type Wants= to this
           target unit for those mounts listed in /etc/fstab that have the auto mount option set.

       remote-fs.target
           Similar to local-fs.target, but for remote mount points.

Also, systemd.mount(5) doesn't state anything about this dependency either, just mentioning mounts in /etc/fstab.


Because all remote filesystems (and local filesystems, but it's less important) get this Before=remote-fs.target ordering dependency, this should be clearly stated in both man pages.
Indeed, this can lead to odd behaviour on shutdown when some service does some remote mount by itself (e.g. pacemaker having some NFS resource) and that service wasn't added a "After=remote-fs.target".
Failing to do so leads to systemd doing the unmounts before the service gets shut down properly, leading to issues (in the case of pacemaker, some application managed by pacemaker will for example die when mount point disappears).


Also, IMO, having Before=remote-fs.target dependency automatically added for non-fstab mounts is a bug, there is no need for that. I understand that this is to mimic what was done in RHEL6 with initd, but it is useless here.
Indeed, the unmounts will anyway be done by umount.target.
Because of that behaviour, a service must be tuned to be aware of the underlying services, which is not its responsability.

For example, if we consider pacemaker.service, the service administrator shall not need to know that some of the resources it manages are mount points and because of that pacemaker.service must be delayed.


Version-Release number of selected component (if applicable):

systemd-219-42.el7_4.1.x86_64


Note You need to log in before you can comment on or make changes to this bug.