Re: ssl tests aren't concurrency safe due to get_free_port()

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org
Date: 2022-11-24T01:15:42Z
Lists: pgsql-hackers
On 2022-11-22 Tu 20:36, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
>> While looking into a weird buildfarm failure ([1]), I noticed this:
>> # Checking port 62707
>> Use of uninitialized value $pid in scalar chomp at /mnt/resource/bf/build/grassquit/REL_11_STABLE/pgsql.build/../pgsql/src/test/perl/PostgresNode.pm line 1247.
>> Use of uninitialized value $pid in addition (+) at /mnt/resource/bf/build/grassquit/REL_11_STABLE/pgsql.build/../pgsql/src/test/perl/PostgresNode.pm line 1248.
> Yeah, my animals are showing that too.
>
>> Not quite sure how $pid ends up uninitialized, given the code:
>> 	# see if someone else has or had a reservation of this port
>> 	my $pid = <$portfile>;
>> 	chomp $pid;
>> 	if ($pid +0 > 0)
> I guess the <$portfile> might return undef if the file is empty?
>
> 		


Yeah, should be fixed now.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




Commits

  1. Fix prove_installcheck when used with PGXS

  2. Prevent port collisions between concurrent TAP tests