Re: Weird test mixup

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Weird test mixup
Дата
Msg-id ZhOd3NXAutteokGL@paquier.xyz
обсуждение исходный текст
Ответ на Re: Weird test mixup  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Weird test mixup
Список pgsql-hackers
On Mon, Apr 08, 2024 at 10:22:40AM +0900, Michael Paquier wrote:
> For now I have applied 997db123c054 to make the GIN tests with
> injection points repeatable as it was an independent issue, and
> f587338dec87 to add the local function pieces.

Bharath has reported me offlist that one of the new tests has a race
condition when doing the reconnection.  When the backend creating the
local points is very slow to exit, the backend created after the
reconnection may detect that a local point previously created still
exists, causing a failure.  The failure can be reproduced with a sleep
in the shmem exit callback, like:
--- a/src/test/modules/injection_points/injection_points.c
+++ b/src/test/modules/injection_points/injection_points.c
@@ -163,6 +163,8 @@ injection_points_cleanup(int code, Datum arg)
     if (!injection_point_local)
         return;

+    pg_usleep(1000000 * 1L);
+
     SpinLockAcquire(&inj_state->lock);
     for (int i = 0; i < INJ_MAX_CONDITION; i++)
     {

At first I was looking at a loop with a scan of pg_stat_activity, but
I've noticed that regress.so includes a wait_pid() that we can use to
make sure that a given process exits before moving on to the next
parts of a test, so I propose to just reuse that here.  This requires
tweaks with --dlpath for meson and ./configure, nothing new.  The CI
is clean.  Patch attached.

Thoughts?
--
Michael

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: NLS doesn't work for pg_combinebackup
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: NLS doesn't work for pg_combinebackup