Hello,
We are using NFS Ganesha with a Custom FSAL on a Ubuntu 20 machine .
We are using protocols 3 & 4 in the Export block of the ganesha config.
When we start the Ganesha process with this config, we are seeing this error
"__Register_program :Cannot register NLM V4 on UDP" because of which ganesha is
not able to start.
We have noticed that when we stop NFS Ganesha with a mount for protocol 3 still open,
there are certain RPC ports related to "nlockmgr" which are not freed up by NFS
Ganesha process, a zombie process seems to hold the port after Ganesha is stopped and we
believe it to be the reason for this issue
mount command : mount -t nfs -o vers=3 `hostname -f`:/export /nfs3_mnt/
Stop cmd used : start-stop-daemon --stop --quiet --retry=TERM/60 --pidfile $PIDFILE --exec
$GANESHA_BINARY
We have identified this issue using "rpcinfo -p" and "netstat -tulp | grep
<port>" commands
~# rpcinfo -p
program vers proto port service
100003 3 udp 2049 nfs
100003 3 tcp 2049 nfs
100005 1 udp 47766 mountd
100005 1 tcp 42331 mountd
100005 3 udp 47766 mountd
100005 3 tcp 42331 mountd
100003 4 udp 2049 nfs
100003 4 tcp 2049 nfs
100024 1 udp 46356 status
100024 1 tcp 53141 status
100021 1 udp 35565 nlockmgr
100021 3 udp 35565 nlockmgr
100021 4 udp 35565 nlockmgr
100021 1 tcp 38291 nlockmgr
100021 3 tcp 38291 nlockmgr
100021 4 tcp 38291 nlockmgr
~# netstat -tulp | grep 35565
udp 0 0 0.0.0.0:35565 0.0.0.0:* -
We are using 5.7 version of Ganesha (libntrpc version 5.0)
~nfs-ganesha# git branch -v
* V5-stable 3113f9705 [behind 96] V5.7
~/nfs-ganesha/src/libntirpc# git branch -v
* (HEAD detached from ccb8b9b8) bf7fd025 5.0
build cmd used : cmake -D USE_DBUS=ON -D USE_NFSIDMAP=ON ../src
#### Ganesha config with custom FSAL ####
LOG
{
COMPONENTS {
ALL = INFO;
}
}
NFSV4
{
Delegations = false;
}
NFS_CORE_PARAM
{
Plugins_Dir = /custom_fsal/lib;
Clustered = false;
DRC_TCP_Size = 16;
DRC_TCP_Recycle_Expire_S = 60;
NFS_Protocols = 3,4;
Enable_RQUOTA = false;
Num_Log_Files = 1;
Max_Logfile_Size = 1073741824;
Dirent_Entries_Track = true;
}
CUSTOMFS
{
// custom config
}
EXPORT
{
Export_Id = 30;
Path = /customexport;
Pseudo = /export;
Squash = No_Root_Squash;
Access_Type = RW;
FSAL {
Name = CUSTOMFS;
}
Protocols = 3,4;
}
###################################
We have built ganesha with VFS FSAL on the same version of 5.7 and tried but do not see
such issue
build cmd used : cmake -D USE_DBUS=ON -D USE_NFSIDMAP=ON -DUSE_GSS=OFF
-DBUILD_CONFIG=vfs_only ../src
when we stop Ganesha with VFS FSAL using the same " start-stop-daemon --stop --quiet
--retry=TERM/60 --pidfile $PIDFILE --exec $GANESHA_BINARY " while having a mount with
protocol 3 still open, we have seen that the "rpcinfo -p" command output
indicates all the port used is freed up
#### Ganesha config with VFS FSAL ####
NFS_CORE_PARAM {
mount_path_pseudo = true;
Protocols = 3,4;
Plugins_Dir = /home/hdsh/etc/conf;
}
EXPORT_DEFAULTS {
Access_Type = RW;
}
EXPORT
{
Export_Id = 77;
# Exported path (mandatory)
Path = /home/hdsh;
# Pseudo Path (required for NFS v4)
Pseudo = /export1;
Access_Type = RW;
#Sectype = sys;
Protocols = 3,4;
# Exporting FSAL
FSAL {
Name = VFS;
}
}
LOG {
Default_Log_Level = INFO;
}
Any help or pointers on why this could be happening in custom FSAL would be really
helpful
Thank you !
Show replies by date