Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: nfs umount error : Bad MNT RPC: RPC: Timed out



In article <20130627161325.GA7478%lynche.sis.pasteur.fr@localhost>,
Nicolas Joly  <njoly%pasteur.fr@localhost> wrote:
>
>Hi,
>
>I do have access, at work, to a new NFS filer (Isilon). Unfortunately
>this new beast is in a different subnet ... and, on that subnet, most
>UDP ports are filtered. Using TCP to mount exported filesystems works
>just fine, but problems arise when trying to unmount them.
>
>njoly@lanfeust [~]> sudo mount -t nfs -o ro,tcp
>filer.yyy.pasteur.fr:/exported/fs /mnt
>njoly@lanfeust [~]> sudo umount /mnt
>Bad MNT RPC: RPC: Timed out
>
>Network trace show that UDP packets are sent to the filer (sunrpc port
>is ok, but port 300 gets filtered) :
>
>17:45:23.906523 IP (tos 0x0, ttl 64, id 7200, offset 0, flags [none],
>proto UDP (17), length 84)
>    lanfeust.xxx.pasteur.fr.exp1 > filer.yyy.pasteur.fr.sunrpc: [udp sum
>ok] UDP, length 56
>17:45:23.906908 IP (tos 0x0, ttl 63, id 38862, offset 0, flags [none],
>proto UDP (17), length 56)
>    filer.yyy.pasteur.fr.sunrpc > lanfeust.xxx.pasteur.fr.exp1: [udp sum
>ok] UDP, length 28
>17:45:23.906997 IP (tos 0x0, ttl 64, id 7201, offset 0, flags [none],
>proto UDP (17), length 192)
>    lanfeust.xxx.pasteur.fr.1020 > filer.yyy.pasteur.fr.300: [udp sum
>ok] UDP, length 164
>17:45:24.012627 IP (tos 0x0, ttl 64, id 7212, offset 0, flags [none],
>proto UDP (17), length 192)
>    lanfeust.xxx.pasteur.fr.1020 > filer.yyy.pasteur.fr.300: [udp sum
>ok] UDP, length 164
>
>Looking into umount(8) the code, show that lastest communication with
>the server is unconditionnaly made over UDP (from sbin/umount/umount.c) :
>
>#ifndef SMALL
>        if (ai != NULL && !(fflag & MNT_FORCE)) {
>                clp = clnt_create(hostp, RPCPROG_MNT, RPCMNT_VER1, "udp");
>                if (clp  == NULL) {
>                        clnt_pcreateerror("Cannot MNT PRC");
>                        return 1;
>                }
>                clp->cl_auth = authsys_create_default();
>                try.tv_sec = 20;
>                try.tv_usec = 0;
>                clnt_stat = clnt_call(clp, RPCMNT_UMOUNT, xdr_dir,
>                    __UNCONST(name), xdr_void, NULL, try);
>                if (clnt_stat != RPC_SUCCESS) {
>                        clnt_perror(clp,"Bad MNT RPC");
>                        return 1;
>                }
>                auth_destroy(clp->cl_auth);
>                clnt_destroy(clp);
>        }
>#endif /* ! SMALL */
>
>Hacking it to use "tcp" instead instead of "udp" makes the problem
>vanish.
>
>While i can ask network admins to open a few more UDP ports to make it
>work ... I wonder if this should be adjusted to use the protocol which
>was requested at mount ?

Or at least a flag to specify the protocol.... This is a bug, we should
fix it.

christos



Home | Main Index | Thread Index | Old Index