From b55619948ea18dbc0f4f8ca823aaa687c0fa2567 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Wed, 7 Apr 2021 19:58:54 +0900 Subject: [PATCH] Fix potential rare failure in the kerberos TAP tests Instead of writing a query to psql's stdin, which can cause a failure where psql exits before writing, reporting a write failure with a broken pipe, this changes the logic to use -c. This was not seen in the buildfarm as no animals with a sensitive environment are running the kerberos tests, but let's be safe. HEAD is able to handle the situation as of 6d41dd0 for all the test suites doing connection checks. f44b9b6 has fixed the same problem for the LDAP tests. Discussion: https://postgr.es/m/YGu7ceWAiSNQDgH5@paquier.xyz Backpatch-through: 11 --- src/test/kerberos/t/001_auth.pl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/kerberos/t/001_auth.pl b/src/test/kerberos/t/001_auth.pl index d476a7800e..8d49847948 100644 --- a/src/test/kerberos/t/001_auth.pl +++ b/src/test/kerberos/t/001_auth.pl @@ -177,13 +177,15 @@ sub test_access # need to connect over TCP/IP for Kerberos my ($res, $stdoutres, $stderrres) = $node->psql( 'postgres', - "$query", + undef, extra_params => [ '-XAtd', $node->connstr('postgres') . " host=$host hostaddr=$hostaddr $gssencmode", '-U', - $role + $role, + '-c', + $query ]); # If we get a query result back, it should be true.