On mån, 2011-09-12 at 16:46 +1000, George Barnett wrote:
> On 12/09/2011, at 3:59 PM, Florian Pflug wrote:
>
> > If you really meant to say "intr" there (and not "nointr") then that probably explains the partial writes.
> >
> > Still, I agree with Noah and Kevin that we ought to deal more gracefully with this, i.e. resubmit after a partial
read()or write(). AFAICS there's nothing to be gained by not doing that, and the increase in code complexity should be
negligible.If we do that, however, I believe we might as well handle EINTR correctly, even if SA_RESTART should prevent
usfrom ever seeing that.
>
>
> Hi Florian,
>
> You are indeed correct. Setting nointr also resolves my issue. I could swear I checked this, but obviously not.
>
> It does still concern me that pgsql did not deal with this as gracefully as other software. I hope the list will
considera patch to resolve that.
We have signal handling configured so that system calls are not
interrupted. So there is ordinarily no reason to do anything more
graceful. The problem is that NFS is in this case not observing that
setting. It's debatable whether it's worth supporting that; just saying
that the code is correct as it stands.