From: | Oleg Tselebrovskiy <o(dot)tselebrovskiy(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Cluster.pm psql() undefined $$stderr |
Date: | 2025-06-04 14:01:54 |
Message-ID: | 558b45b3b36da8241e65ea3566756042@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Greetings, everyone!
If you call node->psql in not-array context, with on_error_die => 1,
but without passing stderr, you will get the following error
and the test will die, but not the way we expect:
Use of uninitialized value in concatenation (.) or string at
/path/to/source_code/src/test/perl/PostgreSQL/Test/Cluster.pm line 2258
This is because $$stderr is not defined in this case
and warnings became FATAL some time ago.
The code string in question for clarity:
...
die
"error running SQL: '$$stderr'\n..."
if $ret == 3;
Minimal reproduction is:
$node->psql('postgres', q{SELEC 1}, on_error_die => 1);
This can be reproduced at current master (30c15987)
Undefined $$stderr also should break dying on recieving a signal, here:
# We always die on signal.
if (defined $ret)
{
... die (".... $$stderr ...");
One of the ways to fix this is to initialize $$stderr with some value
to avoid Perl error (Use of uninitialized value) and replace it with
existing error: "error running SQL: '$$stderr'\n ..."
With this approach we don't lose any useful error messages in
regress_log_*
The proposed patch is attached (0001)
---------------------------------------------------------------------------
Another question I've stumbled upon when trying to fix the
aforementioned
issue is the following: Does redirecting IPC::Run::run streams work with
Postgres Perl module SimpleTee? I've tried to use it to "tee" STDERR to
both $$stderr and to test's regress_log_* file. I'm not sure I'm doing
this right, but I have not found a way to use SimpleTee with
IPC::Run::run
Is there a way to use them together?
I've tried something like (0002)
Regards, Oleg Tselebrovskiy
Attachment | Content-Type | Size |
---|---|---|
0001_fix_undef_stderr.patch | text/x-diff | 2.0 KB |
0002_fix_undef_stderr_SimpleTee_failed.patch | text/x-diff | 1.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2025-06-04 14:21:22 | Re: strange perf regression with data checksums |
Previous Message | Joe Conway | 2025-06-04 13:52:57 | Re: Custom Glibc collation version strings under LOCPATH |