Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
> On 2019-Nov-22, Antonin Houska wrote:
>
> > As I pointed out in
> >
> > https://www.postgresql.org/message-id/88183.1574261429%40antos
> >
> > seg.ws_off only replaced readOff in XLogReaderState. So we should only update
> > ws_off where readOff was updated before commit 709d003. This does happen in
> > ReadPageInternal (see HEAD) and I see no reason for the final patch to update
> > ws_off anywhere else.
>
> Oh you're right.
>
> I see no reason to leave ws_off. We can move that to XLogReaderState; I
> did that here. We also need the offset in WALReadError, though, so I
> added it there too. Conceptually it seems clearer to me this way.
>
> What do you think of the attached?
It looks good to me. Attached is just a fix of a minor problem in error
reporting that Michael pointed out earlier.
> BTW I'm not clear what errors can pread()/pg_pread() report that do not
> set errno. I think lines 1083/1084 of WALRead are spurious now.
All I can say is that the existing calls of pg_pread() do not clear errno, so
you may be right. I'd appreciate more background about the "partial read" that
Michael mentions here:
https://www.postgresql.org/message-id/20191125033048.GG37821%40paquier.xyz
--
Antonin Houska
Web: https://www.cybertec-postgresql.com