[Bug 1971935] Re: Invalid pipefs-directory prevents rpc-gssd.service from starting

Andreas Hasenack 1971935 at bugs.launchpad.net
Tue Jul 5 21:25:13 UTC 2022


Ok, got a theory:

autofs and nfs-common are both unpacked. Then the setup begins.

If autofs is setup first, it means systemctl daemon-reload will be
called at the end, and that will run all the generators. Since
nfs-common is already unpacked, it's generator is on disk, and will be
run.

But /etc/nfs.conf doesn't exist yet: it's produced by ucf in
nfs-common's postinst. That means the generator will not be able to
fetch the pipefs-directory config, and will just exit silently. But
autofs is being started, and it requires rpc_pipefs.target, but at
this time, that target unit is the one from the nfs-common package
that will trigger the var-lib-nfs-rpc_pipefs.mount unit.

Then nfs-common is setup. This time, it will produce /etc/nfs.conf,
and when systemctl daemon-reload is called and the generator run, it
will find /etc/nfs.conf, and the pipefs-directory setting, and see
it's different from the default, and produce the generated target and
mount files.

>From here on there is a difference between debian and ubuntu which I
cannot explain yet.

In debian, we end up with /run/rpc_pipefs *also* mounted, i.e., two
rpc_pipefs mount points. But in ubuntu, just the first one in
/var/lib/nfs/rpc_pipefs remains. Something in debian actually enabled
the run-rpc_pipefs.mount unit after the steps above.

I'll leave that troubleshooting detail for tomorrow :)

-- 
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/1971935

Title:
  Invalid pipefs-directory prevents rpc-gssd.service from starting

Status in nfs-utils package in Ubuntu:
  Confirmed

Bug description:
  Ubuntu 22.04 Server
  Package version: 1:2.6.1-1ubuntu1

  Package nfs-common/nfs-utils provides /etc/nfs.conf and /lib/systemd/system/rpc-gssd.service.
  /etc/nfs.conf (and seems to be copied from /usr/share/nfs-common/conffiles/nfs.conf) has the configuration:
  ...
  [general]
  pipefs-directory=/run/rpc_pipefs
  ...

  When attempting to start rpc-gssd it gives the following error:
  ...
  ERROR: opendir(/run/rpc_pipefs) failed: No such file or directory
  ...

  There is a systemd unit called var-lib-nfs-rpc_pipefs.mount which
  mounts this directory as /var/lib/nfs/rpc_pipefs. However this does
  not match with the configuration in nfs.conf

  It's worth mentioning that sometimes it seems a systemd unit is
  generated (run-rpc_pipefs.mount) which ensures /run/rpc_pipefs is
  created and everything works as expected. Seems to be random.

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




More information about the foundations-bugs mailing list