Re: cfbot is failing all tests on FreeBSD/Meson builds

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Re: cfbot is failing all tests on FreeBSD/Meson builds
Дата
Msg-id CA+hUKGJHpB0qHuteDdKHB-9f9dqnR1R+a2ZGOfqYU=hQkr2+Zg@mail.gmail.com
обсуждение исходный текст
Ответ на cfbot is failing all tests on FreeBSD/Meson builds  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: cfbot is failing all tests on FreeBSD/Meson builds  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Sat, Jan 13, 2024 at 9:32 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> It looks like every recent cfbot run has failed in the
> FreeBSD-13-Meson build, even if it worked in other ones.
> The symptoms are failures in the TAP tests that try to
> use interactive_psql:
>
> Can't call method "slave" on an undefined value at /usr/local/lib/perl5/site_perl/IPC/Run.pm line 2889.
>
> I suspect that we are looking at some bug in IPC::Run that exists in
> the version that that FreeBSD release has (but not, seemingly,
> elsewhere in the community), and that was mostly harmless until
> c53859295 made all Perl warnings fatal.  Not sure what we want
> to do about this.

Right, I see this locally on my FreeBSD box.  Reverting the fatal
warnings thing doesn't help, it's more broken than that.  I tried to
understand

https://github.com/cpan-authors/IPC-Run/blob/master/lib/IPC/Run.pm
https://github.com/cpan-authors/IO-Tty/blob/master/Pty.pm

but I am not good at perl.  I think the error means that in

    ## Close all those temporary filehandles that the kids needed.
    for my $pty ( values %{ $self->{PTYS} } ) {
        close $pty->slave;
    }

the variable $pty holds undef, so then we have to find out where undef
was put into $self->{PTYS}.  There is a place that does:

                        ## Just flag the pyt's existence for now.  It'll be
                        ## converted to a real IO::Pty by _open_pipes.
                        $self->{PTYS}->{$pty_id} = undef;

We can see that this started a couple of days ago:

https://github.com/postgres/postgres/commits/master/

But at older commits I see the problem locally too, so, yeah, it must
be coming from where else.  Looking at the relevant packages
p5-IPC-Run and p5-IO-Tty I see that they recently moved to 20231003.0
and  1.18, respectively.  Downgrading p5-IPC-Run to
p5-IPC-Run-20220807.0.pkg was not enough.  Downgrading p5-IO-Tty to
p5-IO-Tty-1.17.pkg allowed psql/010_tab_completion to pass with either
version of p5-IPC-Run.

The answer may lie in the commits between those versions here:

https://github.com/cpan-authors/IO-Tty/commits/master/

I see that Debian Bookwork is still using 1.17, which fits with your
guess that FreeBSD is just breaking first because it is using a newer
version.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Fix minor memory leak in connection string validation
Следующее
От: Tom Lane
Дата:
Сообщение: Re: cfbot is failing all tests on FreeBSD/Meson builds