[Bug 1971935] Re: Invalid pipefs-directory prevents rpc-gssd.service from starting
Andreas Hasenack
1971935 at bugs.launchpad.net
Fri Jun 24 20:59:10 UTC 2022
I'm trying to reproduce this. It's clear that there is a discrepancy in
rpc_pipefs mountpoints between the generator and the var-lib-* mount
unit, but the generator should have kicked in right after installation
of the package via the systemct daemon-reload call that all packages do
in postinst. And the generator, in turn, checks if the rpc_pipefs config
is different from the default, and only then generates the new mount
unit.
The default is:
#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs"
And NFS_STATEDIR is the value of --with-statedir given to ./configure at
build time, and defaults to /var/lib/nfs (ubuntu/debian's case). So
RPC_PIPEFS_DEFAULT is /var/lib/nfs/rpc_pipefs, and this is what we get
in the var-lib-*.mount unit:
# grep Where /lib/systemd/system/var-lib-nfs-rpc_pipefs.mount
Where=/var/lib/nfs/rpc_pipefs
The generator will just exit silently if the nfs.conf config matches
that default:
conf_init_file(NFS_CONFFILE);
s = conf_get_str("general", "pipefs-directory");
if (!s)
exit(0);
if (strlen(s) == strlen(RPC_PIPEFS_DEFAULT) &&
strcmp(s, RPC_PIPEFS_DEFAULT) == 0)
exit(0);
In the ubuntu/debian case, it won't match:
# nfsconf --get general pipefs-directory
/run/rpc_pipefs
So the generator kicks in:
# grep Where /run/systemd/generator/run-rpc_pipefs.mount
Where=/run/rpc_pipefs
and I get the mount:
# mount -t rpc_pipefs
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
So while we shouldn't be needing the generator, it's doing its job when needed. I still suspect there is some ordering issue that is triggering this bug, but I haven't found it yet.
Still looking.
--
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:
In Progress
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