On Fri, 2018-02-09 at 09:49 -0500, J. Bruce Fields wrote: > On Fri, Feb 09, 2018 at 09:27:00AM +0800, Lu Xinyu wrote: > > I ran pynfs on the RHEL7.4GA with different > > kernels(3.10.0-830.el7,4.15). The testLargeData:WRT5 failed with > > broken pipe. I investigated pynfs code and got the following > > questions. > > > > 1.The intent of WRT5 To check whether the server could handle a > > too-large value over NFSSVC_MAXBLKSIZE. > > > > 2.The expected procedure when test gets passed The server could > > write > > down the oversize data successfully sent by client and return > > NFS4_OK. > > Then, client could read back the data from server. > > Yes, that test is definitely wrong. It might happen to work on > servers > that support larger IO size, but the Linux server doesn't. And, > anyway, > it's perfectly legal for a server to only support lower read/write > size. > > So, the test needs check the server's advertised maximum read and > write > sizes, and then either: > > 1) use that maximum size, and expect success, or > 2) use a larger size and expect some sort of error. > > > (Actually, the test failed with broken pipe and did not return > > packet > > information.) > > > > 3.The nfs server's standrd procedure of handling oversize data It > > seems that the related error is not defined in the RFC3530. Whether > > the server should return any NFSERR before ceasing receving ? > > I'm not sure if the RFC's specify the behavior here. I'll go do some > research. I have a feeling they don't. In that case I think the > best > option will be 1) above. > For NFSv4, you would have the option of returning NFS4ERR_RESOURCE or possibly NFS4ERR_INVAL (personally, I'd prefer the latter, since NFS4ERR_RESOURCE is too wooly). For NFSv4.1 or above, you probably have a choice of NFS4ERR_REQ_TOO_BIG (if the size is greater than ca_maxrequestsize) or NFS4ERR_INVAL. -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@xxxxxxxxxxxxxxx ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥