On Mon, 2010-05-17 at 17:23 +0200, Paul Millar wrote: > Package: nfs-common > Version: 1:1.2.2-1 > Severity: normal > Tags: sid > > Hi, > > I'm trying to mount an NFS server that isn't registered in the portmapper. I > believe this has worked in the past and something changed moderately recently > (probably between 2009-11-19 and 2010-5-1) that broke this behaviour. > > The options supplied to mount (via -o) are: > > nfsvers=2,nolock,udp,noac,intr,rw,mountport=<mount>,port=2049 > > (where <mount> is the UDP port of the NFS mount daemon; the mount daemon isn't > bound to some well-known port, but is discovered by a support script) > > An attempt to mount the NFS server using the above options fails. Watching > the > network traffic, I see the following SunRPC calls: > > 1. SunRPC NULL call to a MOUNT service (running on UDP port <mount>) ... > this > is successful > 2. SunRPC MNT call to a MOUNT service (running on UDP port <mount>) ... this > is successful > 3. SunRPC GETPORT call to Portmap service .. this is unsuccessful (no > registered program) > > The failing GETPORT call to portmapper is querying for program 10000003 (NFS), > version 2, proto UDP. The failure of this call is expected: the NFS server > isn't registered in the portmapper service, so such a query should fail. > However, what isn't clear is why the client is calling the Portmapper service > since the port number has been supplied in the mount options ("port=2049") [...]
Right. For whatever reason, mount.nfs processes the options into a canonical form and at this point it will lose the port=2049 option. Please can you test the following patch: --- nfs-utils-1.2.2.orig/utils/mount/stropts.c +++ nfs-utils-1.2.2/utils/mount/stropts.c @@ -434,8 +434,8 @@ if (po_append(options, new_option) == PO_FAILED) return 0; - po_remove_all(options, "port"); - if (nfs_pmap->pm_port != NFS_PORT) { + if (po_remove_all(options, "port") == PO_FOUND || + nfs_pmap->pm_port != NFS_PORT) { snprintf(new_option, sizeof(new_option) - 1, "port=%lu", nfs_pmap->pm_port); if (po_append(options, new_option) == PO_FAILED) --- END --- You can find a version of the nfs-utils package including this patch under <http://people.debian.org/~benh/>. Ben. -- Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.
signature.asc
Description: This is a digitally signed message part