Yet another small change in SRU75: The NFS client in Solaris is able to “speak” NFSv3 for a long, long time. Nevertheless some of the helper tools were still using NFSv1 RPC. One of the commands is showmount, but dfmounts and dfshares were doing this as well. This isn’t a problem, as long as the server still understands or accepts NFSv1 commands. If not, up to SRU74 you may have seen something similar to this.

jmoekamp@testbed:~$ showmount 192.168.41.22
showmount: RPC: Program/version mismatch

The command will report a mismatch in the version used by the client and the version supported by the server and terminates afterward, as it can`t work this way.

If you check the actual RPC command that is going over the wire with snoop, you will see a version = 1.

RPC:  ----- SUN RPC Header -----
RPC:  
RPC:  Record Mark: last fragment, length = 40
RPC:  Transaction id = 1742439778
RPC:  Type = 0 (Call)
RPC:  RPC version = 2
RPC:  Program = 100005 (MOUNT), version = 1, procedure = 2
RPC:  Credentials: Flavor = 0 (None), len = 0 bytes
RPC:  Verifier   : Flavor = 0 (None), len = 0 bytes
RPC:  

The same command will work with SRU75 and upwards. As there is nothing to report on this IP there is no output, however the command doesn’t terminate with an error.

jmoekamp@testbed:~$ showmount 192.168.41.22
jmoekamp@testbed:~$

If you snoop this connection again, you will see, that this RPC is using version 3 of the RPC now. This is supported by the server and thus there is no mismatch error message.

RPC:  ----- SUN RPC Header -----
RPC:  
RPC:  Record Mark: last fragment, length = 40
RPC:  Transaction id = 1742649465
RPC:  Type = 0 (Call)
RPC:  RPC version = 2
RPC:  Program = 100005 (MOUNT), version = 3, procedure = 2
RPC:  Credentials: Flavor = 0 (None), len = 0 bytes
RPC:  Verifier   : Flavor = 0 (None), len = 0 bytes
RPC:  
Written by

Joerg Moellenkamp

Grey-haired, sometimes grey-bearded Windows dismissing Unix guy.