From: Ben Greear <greearb@candelatech.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: Question on nfs40_discover_server_trunking.
Date: Fri, 18 Jan 2013 13:59:16 -0800 [thread overview]
Message-ID: <50F9C5B4.5020000@candelatech.com> (raw)
In-Reply-To: <0F001F0E-229D-4314-A42E-84402E4F1FC7@oracle.com>
On 01/18/2013 01:33 PM, Chuck Lever wrote:
>
> On Jan 18, 2013, at 4:28 PM, Ben Greear <greearb@candelatech.com> wrote:
>
>> Any chance the STALE_CLIENTID case needs a 'break'?
>
> I don't think so. LEASE_CONFIRM is set, and we want to wake the state renewal thread.
>
>>
>> Twice I've seen kernel crashes after the nfs40_walk_client_list
>> failed (though code comments say it should never fail).
>
> nfs40_walk_client_list() is looking for an nfs_client that is supposed to already be in the nfs_client list. If the search fails, that's a bug.
>
> Eyeball the contents of your nfs_client list. You should find an appropriate nfs_client in there, and then figure out why the search doesn't find it.
Ok, I think I found another issue.
nfs4_client_init does not initialize 'old', but passes it to nfs4_discover_server_trunking.
That gets passed to the detect_trunking operation, which is nfs40_discover_server_trunking
or nfs41_discover_server_trunking.
This will call walk_client_list, which also may not ever assign a value to
'result'.
The code in walk_client_list always dereferences result, however.
So, that is probably why my system blows up shortly after the 'impossible'
error message...
Maybe initialize result to NULL in nfs4[10]_walk_client_list and properly check
for null result in calling code?
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
next prev parent reply other threads:[~2013-01-18 21:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-18 21:28 Question on nfs40_discover_server_trunking Ben Greear
2013-01-18 21:33 ` Chuck Lever
2013-01-18 21:36 ` Ben Greear
2013-01-18 21:59 ` Ben Greear [this message]
2013-01-18 22:29 ` Chuck Lever
2013-01-18 22:34 ` Ben Greear
2013-01-18 22:43 ` Chuck Lever
2013-01-18 22:51 ` Ben Greear
2013-01-18 23:01 ` Ben Greear
2013-01-18 22:03 ` Myklebust, Trond
[not found] ` <1358546604.2872.6.camel@leira.trondhjem.org>
2013-01-18 22:59 ` Myklebust, Trond
2013-01-18 23:06 ` Ben Greear
2013-01-18 23:14 ` Chuck Lever
2013-01-18 23:21 ` Ben Greear
2013-01-19 0:44 ` Myklebust, Trond
[not found] ` <1358556248.2835.10.camel@leira.trondhjem.org>
2013-01-19 1:01 ` Myklebust, Trond
2013-01-19 1:27 ` Chuck Lever
2013-01-19 4:11 ` Myklebust, Trond
2013-01-21 17:32 ` Ben Greear
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=50F9C5B4.5020000@candelatech.com \
--to=greearb@candelatech.com \
--cc=chuck.lever@oracle.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.