linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* NFSv3 mounts issue (get stale errors).
       [not found] <946833378.113316.1327554221600.JavaMail.root@zimbra-prod-mbox-2.vmware.com>
@ 2012-01-26  5:16 ` Andrei Warkentin
  2012-01-26 20:54   ` J. Bruce Fields
  0 siblings, 1 reply; 2+ messages in thread
From: Andrei Warkentin @ 2012-01-26  5:16 UTC (permalink / raw)
  To: linux-nfs

Hi,

I genuinly tried to look for anything on this issue, so I apologize in advance if it was covered before.
Anyway, I've seen something like this while trying to mount a share (which is authorized to a set of specific IP):
1) One mount from one host succeeds.
2) Other mounts fail with stale fh error.

Kernel is 3.2.

Log contains something like:
Jan 25 18:03:44 localhost rpc.mountd[6844]: nfsd_fh: inbuf '10.150.27.241 6 \x150ad1f8b9824ea5a1bfafa56e92fa0b'
Jan 25 18:03:44 localhost rpc.mountd[6844]: /exports and /exports/abracadabra have same filehandle for 10.150.27.241, using first
Jan 25 18:03:44 localhost rpc.mountd[6844]: qword_eol: fflush failed: errno 22 (Invalid argument)
Jan 25 18:03:44 localhost rpc.mountd[6844]: Cannot export /exports, possibly unsupported filesystem or fsid= required

...where /exports/abracadabra is the actual export, and /exports is this pseudoexport for NFSv4.

Granted, my nfs-utils is old (1.2.3). I've looked at the latest tarball, 1.2.5, yet I don't think
this would still help me out very much, as subexport checks for NFSEXP_CROSSMOUNT, which is not set.
(/exports/abracadabra   10.150.27.220(rw,no_root_squash,sync,no_wdelay,no_subtree_check,uuid=b5ffa269:e068456b:9d95fb6a:f2a8f431)

cache.c: static void nfsd_fh(FILE *f) {
...
                    if (!found || subexport(&exp->m_export, found)) {
                                found = &exp->m_export;
                                free(found_path);
                                found_path = strdup(path);
                                if (found_path == NULL)
                                        goto out;
                        } else if (strcmp(found->e_path, exp->m_export.e_path)
                                   && !subexport(found, &exp->m_export))
                                xlog(L_WARNING, "%s and %s have same filehandle for %s using fi\
rst",
                                     found_path, path, dom);
                        }
...
}

Is my thinking wrong? Wouldn't it still pick up (in error) /exports? Does this mean that mountd needs to know if the nfsd.fh request
was for a NFSv3 or NFSv4 mount?

A

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: NFSv3 mounts issue (get stale errors).
  2012-01-26  5:16 ` NFSv3 mounts issue (get stale errors) Andrei Warkentin
@ 2012-01-26 20:54   ` J. Bruce Fields
  0 siblings, 0 replies; 2+ messages in thread
From: J. Bruce Fields @ 2012-01-26 20:54 UTC (permalink / raw)
  To: Andrei Warkentin; +Cc: linux-nfs

On Wed, Jan 25, 2012 at 09:16:48PM -0800, Andrei Warkentin wrote:
> Hi,
> 
> I genuinly tried to look for anything on this issue, so I apologize in advance if it was covered before.
> Anyway, I've seen something like this while trying to mount a share (which is authorized to a set of specific IP):
> 1) One mount from one host succeeds.
> 2) Other mounts fail with stale fh error.
> 
> Kernel is 3.2.
> 
> Log contains something like:
> Jan 25 18:03:44 localhost rpc.mountd[6844]: nfsd_fh: inbuf '10.150.27.241 6 \x150ad1f8b9824ea5a1bfafa56e92fa0b'
> Jan 25 18:03:44 localhost rpc.mountd[6844]: /exports and /exports/abracadabra have same filehandle for 10.150.27.241, using first

That sounds like a bug....

> Jan 25 18:03:44 localhost rpc.mountd[6844]: qword_eol: fflush failed: errno 22 (Invalid argument)
> Jan 25 18:03:44 localhost rpc.mountd[6844]: Cannot export /exports, possibly unsupported filesystem or fsid= required
> 
> ...where /exports/abracadabra is the actual export, and /exports is this pseudoexport for NFSv4.

Note we don't recommend that any more if you're using recent enough
kernel and nfs-utils.  If you leave out the fsid=0 export and export
normally, your export will be visible to v4 clients under its real path
(the same path v2/v3 clients would see.)

> Granted, my nfs-utils is old (1.2.3). I've looked at the latest tarball, 1.2.5, yet I don't think

There are a few fixes in that general area since 1.2.3.

--b.

> this would still help me out very much, as subexport checks for NFSEXP_CROSSMOUNT, which is not set.
> (/exports/abracadabra   10.150.27.220(rw,no_root_squash,sync,no_wdelay,no_subtree_check,uuid=b5ffa269:e068456b:9d95fb6a:f2a8f431)
> 
> cache.c: static void nfsd_fh(FILE *f) {
> ...
>                     if (!found || subexport(&exp->m_export, found)) {
>                                 found = &exp->m_export;
>                                 free(found_path);
>                                 found_path = strdup(path);
>                                 if (found_path == NULL)
>                                         goto out;
>                         } else if (strcmp(found->e_path, exp->m_export.e_path)
>                                    && !subexport(found, &exp->m_export))
>                                 xlog(L_WARNING, "%s and %s have same filehandle for %s using fi\
> rst",
>                                      found_path, path, dom);
>                         }
> ...
> }
> 
> Is my thinking wrong? Wouldn't it still pick up (in error) /exports? Does this mean that mountd needs to know if the nfsd.fh request
> was for a NFSv3 or NFSv4 mount?

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-01-26 20:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <946833378.113316.1327554221600.JavaMail.root@zimbra-prod-mbox-2.vmware.com>
2012-01-26  5:16 ` NFSv3 mounts issue (get stale errors) Andrei Warkentin
2012-01-26 20:54   ` J. Bruce Fields

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).