On 17.03.22 19:04, Fabien COELHO wrote:
>
> Hello Peter,
>
>>> See attached v16 which removes the libpq workaround.
>>
>> I suppose this depends on
>>
>> https://www.postgresql.org/message-id/flat/ab4288f8-be5c-57fb-2400-e3e857f53e46%40enterprisedb.com
>>
>>
>> getting committed, because right now this makes the psql TAP tests
>> fail because of the duplicate error message.
>>
>> How should we handle that?
>
> Ok, it seems I got the patch wrong.
>
> Attached v17 is another try. The point is to record the current status,
> whatever it is, buggy or not, and to update the test when libpq fixes
> things, whenever this is done.
Your patch contains this test case:
+# Test voluntary crash
+my ($ret, $out, $err) = $node->psql(
+ 'postgres',
+ "SELECT 'before' AS running;\n" .
+ "SELECT pg_terminate_backend(pg_backend_pid());\n" .
+ "SELECT 'AFTER' AS not_running;\n");
+
+is($ret, 2, "server stopped");
+like($out, qr/before/, "output before crash");
+ok($out !~ qr/AFTER/, "no output after crash");
+is($err, 'psql:<stdin>:2: FATAL: terminating connection due to
administrator command
+psql:<stdin>:2: FATAL: terminating connection due to administrator command
+server closed the connection unexpectedly
+ This probably means the server terminated abnormally
+ before or while processing the request.
+psql:<stdin>:2: fatal: connection to server was lost', "expected error
message");
The expected output (which passes) contains this line twice:
psql:<stdin>:2: FATAL: terminating connection due to administrator command
psql:<stdin>:2: FATAL: terminating connection due to administrator command
If I paste this test case into current master without your patch, I only
get this line once. So your patch is changing this output. The whole
point of the libpq fixes was to not have this duplicate output. So I
think something is still wrong somewhere.