Fix potential rare failure in the kerberos TAP tests
authorMichael Paquier
Wed, 7 Apr 2021 10:59:27 +0000 (19:59 +0900)
committerMichael Paquier
Wed, 7 Apr 2021 10:59:27 +0000 (19:59 +0900)
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/[email protected]
Backpatch-through: 11

src/test/kerberos/t/001_auth.pl

index d476a7800e7201a9e42e4be9092752c679d24211..8d49847948c23bfa23412563f03a04d51240a15a 100644 (file)
@@ -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.