From: Chuck Lever <chuck.lever@oracle.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: steved@redhat.com, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] Revert "mountd: handle allocation failures in auth_unix_ip upcall"
Date: Mon, 26 Nov 2012 18:10:18 -0500 [thread overview]
Message-ID: <EDBFE401-1163-485C-B60E-7D035FD93BB4@oracle.com> (raw)
In-Reply-To: <20121126225116.GE18186@fieldses.org>
On Nov 26, 2012, at 5:51 PM, "J. Bruce Fields" <bfields@fieldses.org> wrote:
> On Mon, Nov 26, 2012 at 05:38:49PM -0500, Chuck Lever wrote:
>>
>> On Nov 26, 2012, at 5:15 PM, "J. Bruce Fields" <bfields@fieldses.org> wrote:
>>
>>> On Mon, Nov 26, 2012 at 05:05:22PM -0500, Chuck Lever wrote:
>>>>
>>>> On Nov 26, 2012, at 5:03 PM, "J. Bruce Fields" <bfields@fieldses.org> wrote:
>>>>
>>>>> From: "J. Bruce Fields" <bfields@redhat.com>
>>>>>
>>>>> This reverts commit 485f7a21e1649797f29317b865cbb094c1f6a71d. The
>>>>> failures handled there could be any sort of name resolution failure, not
>>>>> just an allocation, and failing to downcall (hence leaving the client
>>>>> hanging) is not the correct thing to do in those cases.
>>>>
>>>> The problem is in the kernel, then: a downcall should be allowed to fail, IMO.
>>>
>>> In this case, after a revert, a failure here will result in the downcall
>>> passing down a client named "DEFAULT". Presumably that won't be
>>> permitted access to the export, so the client will end up getting an
>>> error.
>>
>> "A failure here" can mean either malloc() returned NULL in client_resolve() or client_compose(), or . . . ?
>
> Looks like it'd also fail if we couldn't map the client's ip address to
> a name.
That's the common failure mode here, which is now treated just like a malloc(3) failure.
>> What exactly is the problem with the current code?
Anyway, it would help my addled brain if the problem description in the next version of this patch was more clear about what the code is doing wrong now.
>> The kernel won't get any downcall reply in that
>> case! Is that what you are trying to fix?
>>
>> WRT my original objection: In general I don't see how to make it
>> impossible for mountd to fail.
>
> Sure, but mountd is required for the server to function, so it's just a
> question of how we fail.
>
>> Thus the kernel needs to be better about recovering when mountd
>> suddenly disappears.
>
> Currently it drops and lets the client retry. I suspect that's the
> correct thing to do, but alternatives are welcomed.
By "drops" do you mean the server drops the NFS request, and the client retransmits the request? That's actually pretty unfriendly behavior, IMO, since an application on a client is typically stuck at that point until that RPC gets some sort of result (after possibly several RTOs).
Maybe the server could signal an NFS error of some kind and let the client decide if it wants to retry until the server is working again, or fail that request immediately.
(Also, if NFSv4 is dependent on a mountd upcall, it is not supposed to drop a request, AFAIK).
OK, but this is a separate issue from the case you are trying to fix.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
next prev parent reply other threads:[~2012-11-26 23:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-26 22:03 [PATCH] Revert "mountd: handle allocation failures in auth_unix_ip upcall" J. Bruce Fields
2012-11-26 22:05 ` Chuck Lever
2012-11-26 22:15 ` J. Bruce Fields
2012-11-26 22:38 ` Chuck Lever
2012-11-26 22:51 ` J. Bruce Fields
2012-11-26 23:10 ` Chuck Lever [this message]
2012-11-27 14:23 ` Steve Dickson
2012-11-27 21:31 ` J. Bruce Fields
2012-11-27 21:33 ` Chuck Lever
2012-11-28 14:39 ` Steve Dickson
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=EDBFE401-1163-485C-B60E-7D035FD93BB4@oracle.com \
--to=chuck.lever@oracle.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
--cc=steved@redhat.com \
/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;
as well as URLs for NNTP newsgroup(s).