public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@redhat.com>
To: Chris Vine <chris-TF6qbakwsgc2epGFuHBODCp2UmYkHbXO@public.gmane.org>
Cc: bfields@fieldses.org, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfsd: just keep single lockd reference for nfsd
Date: Fri, 18 Jun 2010 10:30:42 -0400	[thread overview]
Message-ID: <20100618103042.080aa597@corrin.poochiereds.net> (raw)
In-Reply-To: <20100618151808.6e40a0ca-PlFwYbz7hoIyinQH9hAyzg@public.gmane.org>

On Fri, 18 Jun 2010 15:18:08 +0100
Chris Vine <chris-TF6qbakwsgc2epGFuHBODCp2UmYkHbXO@public.gmane.org> wrote:

> On Fri, 18 Jun 2010 07:02:20 -0400
> Jeff Layton <jlayton@redhat.com> wrote:
> 
> > 
> > This patch should replace the other patches that I proposed to make
> > sure that each sv_permsock entry holds a lockd refrence.
> > 
> > Right now, nfsd keeps a lockd reference for each socket that it has
> > open. This is unnecessary and complicates the error handling on
> > startup and shutdown. Change it to just do a lockd_up when creating
> > the nfsd_serv and just do a single lockd_down when taking down the
> > last nfsd thread.
> > 
> > This patch also changes the error handling in nfsd_create_serv a
> > bit too. There doesn't seem to be any need to reset the nfssvc_boot
> > time if the nfsd startup failed.
> > 
> > Note though that this does change the user-visible behavior slightly.
> > Today when someone writes a text socktype and port to the portlist
> > file prior to starting nfsd, lockd is not started when nfsd threads
> > are brought up. With this change, it will be started any time that
> > the nfsd_serv is created. I'm making the assumption that that's not a
> > problem. If it is then we'll need to take a different approach to
> > fixing this.
> 
> [snip]
> 
> With this (and all the other patches in nfsd-error) applied, this
> eliminates the kernel bug/oops.
> 
> However, on my netbook nfsd now always hangs when starting up, no matter
> how much in advance I start portmap.  (The race condition has been
> traded for a hang in very case.)
> 
> dmesg reports this:
> 
> NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
> NFSD: starting 90-second grace period
> [... hang here... ]
> [... continuing after killall rpc.nfsd ...]
> svc: failed to register lockdv1 RPC service (errno 512).
> lockd_up: makesock failed, error=-512
> 
> portmap is definitely running.  'ps axc | grep rpc' gives:
> 
>  1767 ?        Ss     0:00 rpc.portmap
>  1771 ?        Ss     0:00 rpc.statd
>  2412 ?        S      0:00 rpciod/0
>  2413 ?        S      0:00 rpciod/1
>  3075 ?        Ss     0:00 rpc.rquotad
> 
> Chris
> 

Thanks for testing them. No oops == improvement!

...but it would still be good to know what's wrong here. It sounds like
something is really odd with loopback communications on this box. Is
the ipv4 loopback interface up at this time? Do you have any iptables
stuff set up that might be filtering out portmap registration requests
from the kernel? What happens if you run "rpcinfo"? Does it also hang?

The kernel uses TCP for talking to portmap these days, so it might also
be good to see whether you can use rpcinfo to talk to it with TCP too...

Cheers,
-- 
Jeff Layton <jlayton@redhat.com>

  parent reply	other threads:[~2010-06-18 14:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-18 11:02 [PATCH] nfsd: just keep single lockd reference for nfsd Jeff Layton
2010-06-18 14:18 ` Chris Vine
     [not found]   ` <20100618151808.6e40a0ca-PlFwYbz7hoIyinQH9hAyzg@public.gmane.org>
2010-06-18 14:30     ` Jeff Layton [this message]
     [not found]       ` <20100618103042.080aa597-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-06-18 15:04         ` Chris Vine
     [not found]           ` <20100618160411.14d65b2b-PlFwYbz7hoIyinQH9hAyzg@public.gmane.org>
2010-06-18 15:11             ` Jeff Layton
     [not found]               ` <20100618111132.20fb518a-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-06-18 22:45                 ` Chris Vine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100618103042.080aa597@corrin.poochiereds.net \
    --to=jlayton@redhat.com \
    --cc=bfields@fieldses.org \
    --cc=chris-TF6qbakwsgc2epGFuHBODCp2UmYkHbXO@public.gmane.org \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox