[systemd-devel] Why don't remote file systems wait for network-online.target?

Andrei Borzenkov arvidjaar at gmail.com
Tue Mar 10 05:12:19 PDT 2015


В Tue, 10 Mar 2015 12:40:40 +0100
Martin Pitt <martin.pitt at ubuntu.com> пишет:

> Hello all,
> 
> we got a report [1] that NFS fstab mounts (sometimes) aren't being
> mounted at boot as the network is still down:
> 
> | mount[866]: mount.nfs: Network is unreachable
> | systemd[1]: mnt-server.mount mount process exited, code=exited status=32
> | systemd[1]: Failed to mount /mnt/server.
> | systemd[1]: Dependency failed for Remote File Systems.
> | systemd[1]: Job remote-fs.target/start failed with result 'dependency'.
> | systemd[1]: Unit mnt-server.mount entered failed state.
> 
> At the moment, neither network-fs-pre.target has no dependencies at
> all, and the fstab-generator-created .mount units only have
> "Before=remote-fs.target" and no other dependencies.
> 

Dependency on network-online.target is supposed to be implicitly added
(oh, those implicit undocumented dependencies ...)

src/core/mount.c:mount_add_default_dependencies()
...

        if (mount_is_network(p)) {
                after = SPECIAL_REMOTE_FS_PRE_TARGET;
                after2 = SPECIAL_NETWORK_TARGET;
                online = SPECIAL_NETWORK_ONLINE_TARGET;
...
        if (online) {
                r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_WANTS, UNIT_AFTER, online, NULL, true);

If it does not happen, either default dependencies are not applied or
systemd does not consider those filesystems network.

> Wouldn't it make sense to make network-fs-pre.target
> Wants/After=network-online to fix this? If you have/rely on NFS
> mounts, then you usually have some static/always working network
> connection via networkd/auto-connection in NM/ifupdown/etc, which all
> integrate into network-online.target.
> 
> Thanks,
> 
> Martin
> 
> [1] https://launchpad.net/bugs/1429975
> 



More information about the systemd-devel mailing list