From: | Magnus Hagander <magnus(at)hagander(dot)net> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: pg_basebackup WAL streamer shutdown is bogus - leading to slow tests |
Date: | 2022-01-16 16:36:13 |
Message-ID: | CABUevEzsj7-=ObHHC=0tY=Bdk5TLFx24GuXD0NH-PzvXc68=+w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, Jan 16, 2022 at 5:34 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > I don't immediately see a solution for this, other than to add
> > StreamCtl->stop_event (mirroring ->stop_socket) and then convert
> > CopyStreamPoll() to use WaitForMultipleObjects(). Microsoft's select()
> > doesn't support pipes and there's no socketpair().
> > Any more straightforward ideas?
> > From a cursory look at history, it used to be that pg_basebackup had this
> > behaviour on all platforms, but it got fixed for other platforms in
> > 7834d20b57a by Tom (assuming the problem wasn't present there).
>
> Hmm --- I see that I thought Windows was unaffected, but I didn't
> consider this angle.
>
> Can we send the child process a signal to kick it off its wait?
No. (1) on Windows it's not a child process, it's a thread. And (2)
Windows doesn't have signals. We emulate those *in the backend* for
win32, but this problem is in the frontend where that emulation layer
doesn't exist.
--
Magnus Hagander
Me: https://www.hagander.net/
Work: https://www.redpill-linpro.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2022-01-16 16:39:11 | Re: pg_basebackup WAL streamer shutdown is bogus - leading to slow tests |
Previous Message | Tom Lane | 2022-01-16 16:34:42 | Re: pg_basebackup WAL streamer shutdown is bogus - leading to slow tests |