Re: IPC::Run accepts bug reports

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Andres Freund <andres(at)anarazel(dot)de>, Noah Misch <noah(at)leadboat(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: IPC::Run accepts bug reports
Date: 2024-06-18 20:42:04
Message-ID: aafa0e47-22bb-420e-919a-95424364cf19@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 inhttps://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 likehttps://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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2024-06-18 20:43:34 Re: allow changing autovacuum_max_workers without restarting
Previous Message Andres Freund 2024-06-18 20:32:38 Re: cost delay brainstorming