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.