Re: [PATCH 1/1] PNFS dont retry some error when MDS=DS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2017-03-12 at 14:40 -0400, Olga Kornievskaia wrote:
> > On Mar 11, 2017, at 10:46 AM, Trond Myklebust <trondmy@primarydata.
> > com> wrote:
> > 
> > On Fri, 2017-03-10 at 16:37 -0500, Olga Kornievskaia wrote:
> > > If we sent an operation to the "DS" and got an error, the code
> > > resends
> > > to "MDS" but when they are the same, it gets the same error and
> > > goes
> > > into the infinite loop. Example was COMMIT getting EACCES.
> > > 
> > 
> > The correct behaviour when getting EACCES from a COMMIT to the MDS
> > would be to retry the entire series of WRITE calls with stable
> > writes.
> > If the server then returns with anything other than FILE_SYNC, then
> > EIO.
> > 
> > Why is the server failing the COMMIT here if the client thinks it
> > sent
> > unstable writes?
> 
> This looping was discovered during connectathon testing against the
> desy server. While I believe Tigran thinks there is an error in his
> code and EACCES from COMMIT was unexpected, we thought that it would
> be best if the client didn’t go into infinite loop in this condition
> given that EACCES is a valid error for COMMIT. If you think this
> shouldn’t happen in real life, then I’m ok with not pursuing this. 

It is legal, and I can sort of see how it might be invoked if a SETATTR
changes the mode between the WRITE and the COMMIT, but it is a corner
case.

> On a different but related note, in case when MDS != DS, when the
> writes are retried they are not retried against the MDS but again are
> sent to the DS, is that a bug?

I would expect that once you decide to fall back to doing I/O through
the MDS, then you'll want any resends to also go to the MDS.

> > 
> > -- 
> > Trond Myklebust
> > Linux NFS client maintainer, PrimaryData
> > trond.myklebust@xxxxxxxxxxxxxxx
> 
> 
-- 
Trond Myklebust
Linux NFS client maintainer, PrimaryData
trond.myklebust@xxxxxxxxxxxxxxx
��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux