On Mon, Aug 3, 2020 at 4:09 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
> I'm inclined to suggest that the LDAP test's test_access could use
> an empty stdin and pass "-c 'SELECT 1'" as a command line option
> instead.  (Maybe that's exactly what you meant, but I'm not sure.)

Good idea.  Here's a patch like that.

> I've not been able to duplicate this locally, so I have no idea if
> that'd really fix it.

Me neither -- I guess someone who enjoys perl could hack IPC::Run to
take a short nap at the right moment.
From 22220d01b65cef920c953551ce1c49d071fdf29f Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Mon, 3 Aug 2020 11:34:40 +1200
Subject: [PATCH] Fix rare failure in LDAP tests.

Instead of writing a query to psql's stdin, use -c.  This avoids a
failure where psql exits before we write, seen a few times on the build
farm.  Thanks to Noah Misch and Tom Lane for suggesting this fix.

Back-patch to 11, where the LDAP tests arrived.

Discussion: https://postgr.es/m/CA%2BhUKGLFmW%2BHQYPeKiwSp5sdFFHtFViCpw4Mh6yAgEx74r5-Cw%40mail.gmail.com
---
 src/test/ldap/t/001_auth.pl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/test/ldap/t/001_auth.pl b/src/test/ldap/t/001_auth.pl
index f8941144f5..3bc7672451 100644
--- a/src/test/ldap/t/001_auth.pl
+++ b/src/test/ldap/t/001_auth.pl
@@ -165,7 +165,8 @@ sub test_access
 	my ($node, $role, $expected_res, $test_name) = @_;
 
 	my $res =
-	  $node->psql('postgres', 'SELECT 1', extra_params => [ '-U', $role ]);
+	  $node->psql('postgres', undef,
+				  extra_params => [ '-U', $role, '-c', 'SELECT 1' ]);
 	is($res, $expected_res, $test_name);
 	return;
 }
-- 
2.20.1

Reply via email to