Re: pgsql: Prevent port collisions between concurrent TAP tests

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Prevent port collisions between concurrent TAP tests
Date: 2022-11-26 12:40:52
Message-ID: 9b877a84-852f-8ccb-c9ba-72cb01dff266@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers


On 2022-11-26 Sa 06:15, Michael Paquier wrote:
> Hi Andrew,
>
> On Tue, Nov 22, 2022 at 03:56:43PM +0000, Andrew Dunstan wrote:
>> Prevent port collisions between concurrent TAP tests
>>
>> Currently there is a race condition where if concurrent TAP tests both
>> test that they can open a port they will assume that it is free and use
>> it, causing one of them to fail. To prevent this we record a reservation
>> using an exclusive lock, and any TAP test that discovers a reservation
>> checks to see if the reserving process is still alive, and looks for
>> another free port if it is.
>>
>> Ports are reserved in a directory set by the environment setting
>> PG_TEST_PORT_DIR, or if that doesn't exist a subdirectory of the top
>> build directory as set by Makefile.global, or its own
>> tmp_check directory.
> Wouldn't it be better to update .gitgnore at the root of the source
> folder to discard portlock/ so as we will never include by accident in
> a commit?
>

Yes, good point. Will do.

cheers

andrew

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

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Andrew Dunstan 2022-11-26 12:48:18 pgsql: Add portlock directory to .gitignore
Previous Message Michael Paquier 2022-11-26 11:15:34 pgsql: Mark two signal flags as sig_atomic_t in pgbench and pg_test_fsy