Re: IPC::Run accepts bug reports - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: IPC::Run accepts bug reports
Date
Msg-id aafa0e47-22bb-420e-919a-95424364cf19@dunslane.net
Whole thread Raw
In response to Re: IPC::Run accepts bug reports  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers


On 2024-06-18 Tu 3:00 PM, Andres Freund wrote:
Hi,

On 2024-06-18 10:10:17 -0700, Noah Misch wrote:
On Mon, Jun 17, 2024 at 11:11:17AM -0700, Andres Freund wrote:
On 2024-06-15 16:48:24 -0700, Noah Misch wrote:
On Sat, Jun 15, 2024 at 01:26:57PM -0400, Robert Haas wrote:
The one
thing I know about that *I* think is a pretty big problem about Perl
is that IPC::Run is not really maintained.
I don't see in https://github.com/cpan-authors/IPC-Run/issues anything
affecting PostgreSQL.  If you know of IPC::Run defects, please report them.
If I knew of an IPC::Run defect affecting PostgreSQL, I likely would work on
it before absurdity like https://github.com/cpan-authors/IPC-Run/issues/175
NetBSD-10-specific behavior coping.
1) Sometimes hangs hard on windows if started processes have not been shut   down before script exits.  I've mostly encountered this via the buildfarm /   CI, so I never had a good way of narrowing this down. It's very painful   because things seem to often just get stuck once that happens.
That's bad.  Do you have a link to a log, a thread discussing it, or even just
one of the test names experiencing it?
I'm unfortunately blanking on the right keyword right now.

I think it basically required not shutting down a process started in the
background with IPC::Run.

I'll try to repro it by removing some ->finish or ->quit calls.

There's also a bunch of tests that have blocks like
	# some Windows Perls at least don't like IPC::Run's start/kill_kill regime.	skip "Test fails on Windows perl", 2 if $Config{osname} eq 'MSWin32';

Some of them may have been related to this.


I only found one of those, in src/test/recovery/t/006_logical_decoding.pl, which seems to be the only place we use kill_kill at all. That comment dates back to 2017, so maybe a more modern perl and/or IPC::Run will improve matters.

It's not clear to me why that code isn't calling finish() before trying kill_kill(). That's what the IPC::Run docs seem to suggest you should do.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: cost delay brainstorming
Next
From: Andres Freund
Date:
Subject: Re: allow changing autovacuum_max_workers without restarting