Hi,
On 2023-06-06 21:53:00 +0200, Alvaro Herrera wrote:
> On 2023-Apr-24, Andres Freund wrote:
>
> > A prototype of that approach is attached. I pushed the retry handling into the
> > pg_* routines where applicable. I guess we could add pg_* routines for
> > FileFallocate(), FilePrewarm() etc as well, but I didn't do that here.
> >
> > Christoph, could you verify this fixes your issue?
>
> So, is anyone making progress on this? I don't see anything in the
> thread.
Thanks for bringing it up again, I had lost track. I now added an open items
entry.
My gut feeling is that we should go with something quite minimal at this
stage.
> On adding the missing pg_* wrappers: I think if we don't (and we leave
> the retry loops at the File* layer), then the risk is that some external
> code would add calls to the underlying File* routines trusting them to
> do the retrying, which would then become broken when we move the retry
> loops to the pg_* wrappers when we add them. That doesn't seem terribly
> serious to me.
I'm not too worried about that either.
Unless somebody strongly advocates a different path, I plan to push something
along the lines of the prototype I had posted. After reading over it a bunch
more times, some of the code is a bit finnicky.
I wish we had some hack that made syscalls EINTR at a random intervals, just
to make it realistic to test these paths...
Greetings,
Andres Freund