# NFSv4 problem (RPC: Remote system error - Operation timed out)



## garkaklinul (Sep 14, 2012)

Hi,

I have a HAST device /dev/hast/tank that I thought I would attempt at exporting via NFSv4.  I most am most likely having an issue with a configuration file...the man pages are a little confusing to me.  The NFSv4 server is configured thusly:

```
fgrep -i nfs /etc/rc.conf
nfs_server_flags="-h 10.0.0.1"
nfs_server_enable="YES"
nfsv4_server_enable="YES"
nfsuserd_flags="-verbose"
nfsuserd_enable="YES"
```

I also have the following configuration for mountd specified in /etc/rc.conf:

```
mountd_flags="-p 988"
```


```
sysctl -a | grep -i nfs
options NFSLOCKD
options NFSD
options NFSCL
kern.features.nfscl: 1
kern.features.nfsd: 1
vfs.nfs.downdelayinitial: 12
vfs.nfs.downdelayinterval: 30
vfs.nfs.bufpackets: 4
vfs.nfs.reconnects: 0
vfs.nfs.nfs3_jukebox_delay: 10
vfs.nfs.skip_wcc_data_onerr: 1
vfs.nfs.keytab_enctype: 1
vfs.nfs.realign_test: 0
vfs.nfs.realign_count: 0
vfs.nfs.callback_addr: 
vfs.nfs.access_cache_timeout: 60
vfs.nfs.prime_access_cache: 0
vfs.nfs.commit_on_close: 0
vfs.nfs.clean_pages_on_close: 1
vfs.nfs.nfs_directio_enable: 0
vfs.nfs.nfs_keep_dirty_on_error: 0
vfs.nfs.nfs_directio_allow_mmap: 1
vfs.nfs.nfs_ip_paranoia: 1
vfs.nfs.diskless_valid: 0
vfs.nfs.diskless_rootpath: 
vfs.nfs.iodmaxidle: 120
vfs.nfs.iodmin: 0
vfs.nfs.iodmax: 20
vfs.nfs.defect: 0
vfs.nfsd.disable_checkutf8: 0
vfs.nfsd.nfs_privport: 0
vfs.nfsd.server_min_nfsvers: 4
vfs.nfsd.server_max_nfsvers: 4
vfs.nfsd.mirrormnt: 1
vfs.nfsd.commit_blks: 0
vfs.nfsd.commit_miss: 0
vfs.nfsd.issue_delegations: 0
vfs.nfsd.enable_locallocks: 0
vfs.nfsd.minthreads: 4
vfs.nfsd.maxthreads: 4
vfs.nfsd.threads: 4
vfs.nfsd.request_space_used: 0
vfs.nfsd.request_space_used_highest: 0
vfs.nfsd.request_space_high: 16777216
vfs.nfsd.request_space_low: 11184810
vfs.nfsd.request_space_throttled: 0
vfs.nfsd.request_space_throttle_count: 0
vfs.acl_nfs4_old_semantics: 0
```


```
cat /etc/exports
V4: /export tv laptop
```

The clients are configued with the following:

```
fgrep -i nfs /etc/rc.conf
nfsuserd_flags="-verbose"
nfsuserd_enabled="YES"
nfscbd_enable="YES"
```

The NFSv4 host boots up & manualy bring up the hast device.  When I attempt to mount the host root tree on the clients the following happens 
	
	



```
mount -t nfs -o nfsv4 tank:/ /mnt
[tcp] direwolf:/: nfsd: RPCPROG_NFS: RPC: Remote system error - Operation timed out
[tcp] direwolf:/: nfsd: RPCPROG_NFS: RPC: Remote system error - Operation timed out
[tcp] direwolf:/: nfsd: RPCPROG_NFS: RPC: Remote system error - Operation timed out
[tcp] direwolf:/: nfsd: RPCPROG_NFS: RPC: Remote system error - Operation timed out
```

rpcinfo from the clients dumps:

```
rpcinfo -p tank
   program vers proto   port  service
    100000    4   tcp    111  rpcbind
    100000    3   tcp    111  rpcbind
    100000    2   tcp    111  rpcbind
    100000    4   udp    111  rpcbind
    100000    3   udp    111  rpcbind
    100000    2   udp    111  rpcbind
    100000    4 local    111  rpcbind
    100000    3 local    111  rpcbind
    100000    2 local    111  rpcbind
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100005    1   udp    988  mountd
    100005    3   udp    988  mountd
    100005    1   tcp    988  mountd
    100005    3   tcp    988  mountd
```

Also, /var/log/messages on either server or clients reports any NFS related foo.

I am not sure if the following is to be expected?  Is showmount/mountd only related to NFS < v4?

```
showmount -e tank
Exports list on tank:
```

I used to use NFSv3 sometime ago without problems, so I thought I would try NFSv4 instead as I recall seeing some mailing list thread about poor video playback via NFVs4 exported file systems, and I would like to see if this is still the case.

Any help would be great.


----------



## garkaklinul (Sep 15, 2012)

Apologies for the misuse of tags.  Thanks for rectifying the issues.


I believe I misinterpreted exports(5).  NFSv4 still requires an exported file system in addition to the root tree.

```
# cat /etc/exports
V4: /exports tv laptop
/exports -maproot=root tv laptop
```
That is currently the only successful method I have had to remotely mount NFS exported file systems.

However, I do no wish to export all sub-directories of /exports:

```
# ls -l /exports
total 16
drwxr-xr-x  2 media  media  512 Sep 14 22:40 media
drwxr-xr-x  2 root   wheel  512 Sep 14 22:40 obj
drwxr-xr-x  2 root   wheel  512 Sep 14 22:40 share
drwxr-xr-x  2 root   wheel  512 Sep 14 22:40 src
```

I would like to keep /exports/share private to the NFSv4 server, but this is not the case. I can mount it from either client.  I had also intended to export /exports/svn & /exports/media as read-only & to preserve UID/GID attributes.  However if I configure /etc/exports such as:

```
# cat /etc/exports
V4: /exports tv laptop
/exports/obj -maproot=root tv laptop
/exports/svn -ro tv laptop
/exports/media -maproot=media:media tv laptop
```

And reload via /etc/rc.d/mountd the following is logged:

```
Sep 15 22:47:30 tank mountd[2770]: can't change attributes for /exports/svn: Invalid radix node head, rn: 0 0xfffffe01a4d35d00
Sep 15 22:47:30 tank mountd[2770]: bad exports list line /exports/svn -ro
Sep 15 22:47:30 tank mountd[2770]: can't change attributes for /exports/media: Invalid radix node head, rn: 0 0xfffffe01a4ada900
Sep 15 22:47:30 tank mountd[2770]: bad exports list line /exports/media -maproot
```

Is it possible to export multiple file systems with different configurations from within the one NFSv4 root?


----------

