From: "J. Bruce Fields" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: List Linux RDMA Mailing <linux-rdma@vger.kernel.org>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v3 09/14] svcrdma: Report Write/Reply chunk overruns
Date: Fri, 14 Apr 2017 15:33:38 -0400 [thread overview]
Message-ID: <20170414193338.GA10208@fieldses.org> (raw)
In-Reply-To: <809B3E7B-8991-4358-804F-B2D0101723FF@oracle.com>
On Fri, Apr 14, 2017 at 03:07:20PM -0400, Chuck Lever wrote:
>
> > On Apr 14, 2017, at 1:52 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
> >
> > On Fri, Apr 14, 2017 at 12:10:03PM -0400, Chuck Lever wrote:
> >>
> >>> On Apr 14, 2017, at 11:56 AM, J. Bruce Fields <bfields@fieldses.org> wrote:
> >>>
> >>> On Sun, Apr 09, 2017 at 01:06:41PM -0400, Chuck Lever wrote:
> >>>> Observed at Connectathon 2017.
> >>>>
> >>>> If a client has underestimated the size of a Write or Reply chunk,
> >>>> the Linux server writes as much payload data as it can, then it
> >>>> recognizes there was a problem and closes the connection without
> >>>> sending the transport header.
> >>>
> >>> Why would the client underestimate? Is this a client-side bug?
> >>
> >> It can be a bug, and the behavior in this case is that the
> >> client retransmits indefinitely and deadlocks the transport,
> >> because the client's upper layer never sees a reply.
> >>
> >> But as you know there are some NFS operations where the client
> >> cannot predict in advance how large the reply will be. In
> >> particular the upper bound size of an NFSACL GETACL reply or
> >> certain NFSv4 GETATTR attributes are not predictable.
> >
> > Oh, I'd forgotten about those cases.
> >
> >> These
> >> I might categorize as protocol bugs.
> >>
> >> A client can do its best by posting a very large reply buffer
> >> for such operations, but since these situations typically
> >> are in practice rare, but NFSv4 GETATTR can be a relatively
> >> common operation, clients post a few dozen KB for the reply
> >> buffer and call it a day.
> >>
> >> In these cases (if they should ever fail IRL), returning an
> >> error is polite and allows operation of other RPCs on that
> >> transport to continue.
> >
> > Got it, thanks. (I assume this is documented somewhere in the specs?)
>
> I've written about it in rfc5667bis-09. It's a short document,
> review comments welcome.
Oh, look, right there in
https://tools.ietf.org/html/draft-ietf-nfsv4-rfc5667bis-09#section-2.1
Thanks! And apologies for not keeping up with stuff.
--b.
WARNING: multiple messages have this Message-ID (diff)
From: "J. Bruce Fields" <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
To: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: List Linux RDMA Mailing
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Linux NFS Mailing List
<linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v3 09/14] svcrdma: Report Write/Reply chunk overruns
Date: Fri, 14 Apr 2017 15:33:38 -0400 [thread overview]
Message-ID: <20170414193338.GA10208@fieldses.org> (raw)
In-Reply-To: <809B3E7B-8991-4358-804F-B2D0101723FF-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
On Fri, Apr 14, 2017 at 03:07:20PM -0400, Chuck Lever wrote:
>
> > On Apr 14, 2017, at 1:52 PM, J. Bruce Fields <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> wrote:
> >
> > On Fri, Apr 14, 2017 at 12:10:03PM -0400, Chuck Lever wrote:
> >>
> >>> On Apr 14, 2017, at 11:56 AM, J. Bruce Fields <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> wrote:
> >>>
> >>> On Sun, Apr 09, 2017 at 01:06:41PM -0400, Chuck Lever wrote:
> >>>> Observed at Connectathon 2017.
> >>>>
> >>>> If a client has underestimated the size of a Write or Reply chunk,
> >>>> the Linux server writes as much payload data as it can, then it
> >>>> recognizes there was a problem and closes the connection without
> >>>> sending the transport header.
> >>>
> >>> Why would the client underestimate? Is this a client-side bug?
> >>
> >> It can be a bug, and the behavior in this case is that the
> >> client retransmits indefinitely and deadlocks the transport,
> >> because the client's upper layer never sees a reply.
> >>
> >> But as you know there are some NFS operations where the client
> >> cannot predict in advance how large the reply will be. In
> >> particular the upper bound size of an NFSACL GETACL reply or
> >> certain NFSv4 GETATTR attributes are not predictable.
> >
> > Oh, I'd forgotten about those cases.
> >
> >> These
> >> I might categorize as protocol bugs.
> >>
> >> A client can do its best by posting a very large reply buffer
> >> for such operations, but since these situations typically
> >> are in practice rare, but NFSv4 GETATTR can be a relatively
> >> common operation, clients post a few dozen KB for the reply
> >> buffer and call it a day.
> >>
> >> In these cases (if they should ever fail IRL), returning an
> >> error is polite and allows operation of other RPCs on that
> >> transport to continue.
> >
> > Got it, thanks. (I assume this is documented somewhere in the specs?)
>
> I've written about it in rfc5667bis-09. It's a short document,
> review comments welcome.
Oh, look, right there in
https://tools.ietf.org/html/draft-ietf-nfsv4-rfc5667bis-09#section-2.1
Thanks! And apologies for not keeping up with stuff.
--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-04-14 19:33 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-09 17:05 [PATCH v3 00/14] Server-side NFS/RDMA changes proposed for v4.12 Chuck Lever
2017-04-09 17:05 ` Chuck Lever
2017-04-09 17:05 ` [PATCH v3 01/14] svcrdma: Move send_wr to svc_rdma_op_ctxt Chuck Lever
2017-04-09 17:05 ` Chuck Lever
2017-04-09 17:05 ` [PATCH v3 02/14] svcrdma: Add svc_rdma_map_reply_hdr() Chuck Lever
2017-04-09 17:05 ` Chuck Lever
2017-04-09 17:05 ` [PATCH v3 03/14] svcrdma: Eliminate RPCRDMA_SQ_DEPTH_MULT Chuck Lever
2017-04-09 17:05 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 04/14] svcrdma: Add helper to save pages under I/O Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 05/14] svcrdma: Clean up svc_rdma_get_inv_rkey() Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 06/14] svcrdma: Introduce local rdma_rw API helpers Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 07/14] svcrdma: Use rdma_rw API in RPC reply path Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 08/14] svcrdma: Clean up RDMA_ERROR path Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 09/14] svcrdma: Report Write/Reply chunk overruns Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-14 15:56 ` J. Bruce Fields
2017-04-14 15:56 ` J. Bruce Fields
2017-04-14 16:10 ` Chuck Lever
2017-04-14 16:10 ` Chuck Lever
2017-04-14 17:52 ` J. Bruce Fields
2017-04-14 17:52 ` J. Bruce Fields
2017-04-14 19:07 ` Chuck Lever
2017-04-14 19:07 ` Chuck Lever
2017-04-14 19:33 ` J. Bruce Fields [this message]
2017-04-14 19:33 ` J. Bruce Fields
2017-04-09 17:06 ` [PATCH v3 10/14] svcrdma: Clean up RPC-over-RDMA backchannel reply processing Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:06 ` [PATCH v3 11/14] svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt Chuck Lever
2017-04-09 17:06 ` Chuck Lever
2017-04-09 17:07 ` [PATCH v3 12/14] svcrdma: Remove unused RDMA Write completion handler Chuck Lever
2017-04-09 17:07 ` Chuck Lever
2017-04-09 17:07 ` [PATCH v3 13/14] svcrdma: Remove the req_map cache Chuck Lever
2017-04-09 17:07 ` Chuck Lever
2017-04-09 17:07 ` [PATCH v3 14/14] svcrdma: Clean out old XDR encoders Chuck Lever
2017-04-09 17:07 ` Chuck Lever
2017-04-14 17:54 ` [PATCH v3 00/14] Server-side NFS/RDMA changes proposed for v4.12 J. Bruce Fields
2017-04-14 17:54 ` J. Bruce Fields
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=20170414193338.GA10208@fieldses.org \
--to=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-rdma@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.