From: "J. Bruce Fields" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: 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 13:52:16 -0400 [thread overview]
Message-ID: <20170414175216.GA8290@fieldses.org> (raw)
In-Reply-To: <FCC0F429-0799-4416-9A61-ABD19C773AA9@oracle.com>
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?)
--b.
next prev parent reply other threads:[~2017-04-14 17:52 UTC|newest]
Thread overview: 21+ 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 ` [PATCH v3 01/14] svcrdma: Move send_wr to svc_rdma_op_ctxt 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 ` [PATCH v3 03/14] svcrdma: Eliminate RPCRDMA_SQ_DEPTH_MULT 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 ` [PATCH v3 05/14] svcrdma: Clean up svc_rdma_get_inv_rkey() 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 ` [PATCH v3 07/14] svcrdma: Use rdma_rw API in RPC reply path Chuck Lever
2017-04-09 17:06 ` [PATCH v3 08/14] svcrdma: Clean up RDMA_ERROR path Chuck Lever
2017-04-09 17:06 ` [PATCH v3 09/14] svcrdma: Report Write/Reply chunk overruns Chuck Lever
2017-04-14 15:56 ` J. Bruce Fields
2017-04-14 16:10 ` Chuck Lever
2017-04-14 17:52 ` J. Bruce Fields [this message]
2017-04-14 19:07 ` Chuck Lever
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 ` [PATCH v3 11/14] svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt 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 ` [PATCH v3 13/14] svcrdma: Remove the req_map cache Chuck Lever
2017-04-09 17:07 ` [PATCH v3 14/14] svcrdma: Clean out old XDR encoders Chuck Lever
2017-04-14 17:54 ` [PATCH v3 00/14] Server-side NFS/RDMA changes proposed for v4.12 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=20170414175216.GA8290@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 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).