Re: pgsql: Prevent port collisions between concurrent TAP tests

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Prevent port collisions between concurrent TAP tests
Date: 2022-11-26 11:15:19
Message-ID: Y4H1RyEUsk23Tgp6@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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?

Thanks,
--
Michael

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2022-11-26 11:15:34 pgsql: Mark two signal flags as sig_atomic_t in pgbench and pg_test_fsy
Previous Message Michael Paquier 2022-11-26 01:15:07 pgsql: Fix typo in hba.c