On Mon, May 26, 2014 at 01:44:14PM -0700, Paul Eggert wrote: > Azat Khuzhin wrote: > >The current patch only look while files is created, but this is not > >enough `I agree with you, it must check write(2) and fallback to creating > >when write(2) will fail with ENOSPC. > >This is what you mean? > > Yes. > > >when we have ENOSPC it > >means that we already won't create any more files there, and one file > >with relatively small size is not a big deal. > > OK. The point is that 'sort' shouldn't lose the data (including the > possibly-incomplete trailing line) that's already in the temporary file when > a write to that file fails.
Thanks for the explanation, I see what you mean. > > Also, the code could treat EIO like ENOSPC, I suppose, to be more robust in > the presence of bad temporary devices. > > But beware file systems that report ENOSPC and EIO in a delayed fashion, > i.e., not immediately upon the failing write, but somewhat later, typically > when closing the output file. Yeah, that's a good catch, I will keep this in mind when I will start working on this. Thanks, Azat.