Re: Make all Perl warnings fatal - Mailing list pgsql-hackers

From Bharath Rupireddy
Subject Re: Make all Perl warnings fatal
Date
Msg-id CALj2ACW7yyRkUX=9XGHaimVJSfGHG1ZANnNWWMnEeGyDeueCiA@mail.gmail.com
Whole thread Raw
In response to Re: Make all Perl warnings fatal  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Make all Perl warnings fatal
List pgsql-hackers
On Fri, Jan 12, 2024 at 9:03 PM Peter Eisentraut <peter@eisentraut.org> wrote:
>
> On 11.01.24 12:29, Bharath Rupireddy wrote:
> > On Sat, Dec 30, 2023 at 12:57 AM Peter Eisentraut <peter@eisentraut.org> wrote:
> >>
> >> committed
> >
> > With the commit c5385929 converting perl warnings to FATAL, use of
> > psql/safe_psql with timeout parameters [1] fail with the following
> > error:
> >
> > Use of uninitialized value $ret in bitwise and (&) at
> > /home/ubuntu/postgres/src/test/recovery/../../../src/test/perl/PostgreSQL/Test/Cluster.pm
> > line 2015.
>
> I think what is actually relevant is the timed_out parameter, otherwise
> the psql/safe_psql function ends up calling "die" and you don't get any
> further.
>
> > Perhaps assigning a default error code to $ret instead of undef in
> > PostgreSQL::Test::Cluster - psql() function is the solution.
>
> I would put this code
>
>      my $core = $ret & 128 ? " (core dumped)" : "";
>      die "psql exited with signal "
>        . ($ret & 127)
>        . "$core: '$$stderr' while running '@psql_params'"
>        if $ret & 127;
>      $ret = $ret >> 8;
>
> inside a if (defined $ret) block.
>
> Then the behavior would be that the whole function returns undef on
> timeout, which is usefully different from returning 0 (and matches
> previous behavior).

WFM.

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: Re: reorganize "Shared Memory and LWLocks" section of docs
Next
From: Magnus Hagander
Date:
Subject: Re: System username in pg_stat_activity