On 6/12/21 3:15 PM, Tom Lane wrote:
>>> Michael Paquier <michael@paquier.xyz> writes:
>>>> This is the same problem as c757a3da and 6d41dd0, where we write a
>>>> query to a pipe but the kill, causing a failure, makes the test fail
>>>> with a SIGPIPE in IPC::Run as a query is sent down to a pipe.
> After checking the git logs, I realized that this failure is actually
> new since 11e9caff8: before that, poll_query_until passed the query
> on the command line not stdin, so it wasn't vulnerable to SIGPIPE.
> So that explains why we only recently started to see this.
>
> The fix I proposed seems to work fine in all branches, so I went
> ahead and pushed it.
>
>
I'm a bit dubious about this. It doesn't seem more robust to insist that
we pass undef in certain cases. If passing the SQL via stdin is fragile,
as we also found to be the case with passing it via the command line,
perhaps we should try passing it via a tmp file. Then there would
presumably be no SIGPIPE.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com