From: Dr Fields James Bruce <bfields@fieldses.org>
To: Kinglong Mee <kinglongmee@gmail.com>
Cc: Trond Myklebust <trond.myklebust@primarydata.com>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 4/5] NFSD/SUNRPC: Check rpc_xprt out of xs_setup_bc_tcp
Date: Mon, 27 Jan 2014 18:08:50 -0500 [thread overview]
Message-ID: <20140127230850.GC8534@fieldses.org> (raw)
In-Reply-To: <52CF5DD4.3080409@gmail.com>
Apologies, I completely dropped this and now I've lost the thread of the
discussion.
What is your most recent patchset?
--b.
On Fri, Jan 10, 2014 at 10:41:24AM +0800, Kinglong Mee wrote:
> On 01/10/2014 01:27 AM, Trond Myklebust wrote:
> >
> > On Jan 9, 2014, at 11:26, Dr Fields James Bruce <bfields@fieldses.org> wrote:
> >
> >> On Thu, Jan 09, 2014 at 06:33:10PM +0800, Kinglong Mee wrote:
> >>> Besides checking rpc_xprt out of xs_setup_bc_tcp,
> >>> increase it's reference (it's important).
> >>
> >> This sounds wrong to me: the presence of a backchannel can't prevent the
> >> client's connection from going away. Instead, when the connection dies,
> >> any associated backchannels should be immediately destroyed.
> >
> > Hi Bruce,
> >
> > The right way to deal with this is to have knfsd shut down the rpc_client
> > when it detects the TCP disconnection event.
>
> Yes, that's right.
> Knfsd has do it as you said.
>
> When getting xprt's status of XPT_CLOSE in svc_recv/svc_handle_xprt,
> knfsd will delete the xprt by svc_delete_xprt.
>
> In svc_delete_xprt, knfsd calls call_xpt_users to notify those users of the xprt.
> So, nfsd4_conn_lost will be called to free the connection.
> After freeing connection, nfsd4_probe_callback will update the callback for the client.
> And, the clp->cl_cb_client will be shutdown in nfsd4_process_cb_update.
>
> At last, all using of the xprt will be released.
> I have test it, that's OK.
>
> > The xprt->count shouldn’t be an issue here:
> > it has nothing to do with the socket connection state.
>
> The xprt of backchannel, there are two references,
> 1. rpc_clnt
> 2. svc_xprt
>
> For rpc_clnt, initialize the xprt->count in xs_setup_bc_tcp,
> or increase it in create_backchannel_client, and, decrease in rpc_free_client.
>
> For svc_xprt, increase it in xs_setup_bc_tcp, and decrease in svc_xprt_free.
>
> thanks,
> Kinglong Mee
>
next prev parent reply other threads:[~2014-01-27 23:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-06 9:33 [PATCH] SUNRPC: fix a memory leak for tcp NFSv4.1 backchannel Kinglong Mee
2014-01-06 18:49 ` J. Bruce Fields
2014-01-06 22:40 ` Trond Myklebust
2014-01-06 22:53 ` Dr Fields James Bruce
2014-01-06 23:28 ` Trond Myklebust
2014-01-07 5:07 ` Kinglong Mee
2014-01-09 10:31 ` [PATCH 0/5] NFSD/SUNRPC: Fix some bugs which cause memory leak for the backchannel Kinglong Mee
2014-01-09 10:31 ` [PATCH 1/5] NFSD: Using free_conn free connection Kinglong Mee
2014-01-09 10:32 ` [PATCH 2/5] NFSD: Free backchannel xprt in bc_destroy Kinglong Mee
2014-01-09 10:32 ` [PATCH 3/5] SUNRPC: New helper for creating client with rpc_xprt Kinglong Mee
2014-01-09 10:33 ` [PATCH 4/5] NFSD/SUNRPC: Check rpc_xprt out of xs_setup_bc_tcp Kinglong Mee
2014-01-09 16:26 ` Dr Fields James Bruce
2014-01-09 17:27 ` Trond Myklebust
2014-01-10 2:41 ` Kinglong Mee
2014-01-27 23:08 ` Dr Fields James Bruce [this message]
2014-02-11 12:08 ` Kinglong Mee
2014-01-09 10:33 ` [PATCH 5/5] SUNRPC: Clear xpt_bc_xprt if xs_setup_bc_tcp failed Kinglong Mee
2014-01-09 15:57 ` [PATCH] SUNRPC: fix a memory leak for tcp NFSv4.1 backchannel Dr Fields James Bruce
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=20140127230850.GC8534@fieldses.org \
--to=bfields@fieldses.org \
--cc=kinglongmee@gmail.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@primarydata.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 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.