[Bug 1918141] Re: nfs-server.service needs name resolution and network online

Sergio Durigan Junior 1918141 at bugs.launchpad.net
Tue Mar 9 21:44:47 UTC 2021


Thanks for the report and the great description.

The rationale here makes sense to me, and I agree with updating the
packages in order to solve the described issue.  However, since we will
have to SRU this into Focal and Bionic (and I've just noticed that
Hirsute's nfs-server.service file is basically the same as the one
shipped in Focal, so we will have to this there as well), it would be
really good to come up with a reproducer that can ideally be run in a VM
(lxd, multipass, virt-manager, it doesn't matter).

I did a quick test here and fired up two LXDs VMs.  I configured nfs-
server in one of them, and placed the following in its /etc/exports:

/testshare nfs-utils-bug1918141-focal-2.lxd(rw,sync,no_subtree_check)

I verified that nfs-utils-bug1918141-focal-2.lxd can be resolved and is
not in /etc/hosts, and then restarted the VM.  It came back up right
away, and the nfs-server service had been started successfully.

I fiddled a bit with the systemd services, even created one fake service
that just sleeps for a certain amount of time, but I guess that in a VM
if network.target is up then you can just use the network right away.

Anyway, if you have any ideas on how to reproduce this, I'm all ears.
Otherwise, if it's really something hard to do in a VM, then we might
just go ahead with the SRU and explain the situation.  Thanks.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to nfs-utils in Ubuntu.
https://bugs.launchpad.net/bugs/1918141

Title:
  nfs-server.service needs name resolution and network online

Status in nfs-utils package in Ubuntu:
  Confirmed

Bug description:
  nfs-server.service has insufficient dependencies to start correctly in
  a setting where the nfs exports list contains DNS host names (not in
  local hosts file) or netgroups served via network (for example sssd).

  Typical failures listed by systemctl status nfs-server.service are:

  Mar 08 14:16:52 server.example.com exportfs[844]: exportfs: Failed to resolve client1.example.com
  Mar 08 14:16:52 server.example.com exportfs[844]: exportfs: Failed to resolve client2.example.com

  
  Our workaround is to add the appropriate dependecies in /etc/systemd/system/nfs-server.service.d/dependencies.conf like so:

  ----------------------8<----------------------------
  [Unit]
  # nfs-server.service runs exportfs on startup, thus we need to be able to
  # do host and netgroup lookups which requires network to be online.
  After=network-online.target nss-lookup.target nss-user-lookup.target
  ----------------------8<----------------------------

  While nfs-server.service do depend on network.target, that only means
  that the network has been configured. On physical hardware it can take
  significantly longer for the network to come online (8+ seconds for
  our 10G NICs). Also note that we configure static IP:s via systemd-
  networkd, things might behave differently when using DHCP, network-
  manager etc. In any case, depending on network.target is almost always
  wrong, and network-online.target is usually the right one.

  nss-lookup.target is needed to ensure that DNS resolution works, and
  nss-user-lookup.target is the best approximation to ensure that
  netgroup resolution via sssd or equivalent works. Usually things "just
  works" even without these dependencies, but to ensure correct startup
  they should be present.

  It should be noted that this seems to once have been fixed in Ubuntu,
  but has been lost along the way for quite some time. When googling I
  find for example https://code.launchpad.net/~ubuntu-
  branches/ubuntu/wily/nfs-utils/wily-201507271018/+merge/265946 that
  fixes the network.target vs network-online.target dependency, but it
  has since been lost in the wind it seems.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/1918141/+subscriptions



More information about the foundations-bugs mailing list