Re: TAP test started using meson, can get a tcp port already used by another test.
От | Andres Freund |
---|---|
Тема | Re: TAP test started using meson, can get a tcp port already used by another test. |
Дата | |
Msg-id | tmq7i6yo77xpzbvtiengfxowekjjci5ovghdvg63unsqrmj6v6@tdr45u6epwcl обсуждение исходный текст |
Ответ на | TAP test started using meson, can get a tcp port already used by another test. (Zharkov Roman <r.zharkov@postgrespro.ru>) |
Ответы |
Re: TAP test started using meson, can get a tcp port already used by another test.
|
Список | pgsql-hackers |
Hi, On 2025-02-21 15:58:45 +0700, Zharkov Roman wrote: > We running TAP tests which operates with a lot of instances. And some of > these tests randomly fail due "address already in use". It turned out that > the meson does not set environment variable MESON_BUILD_ROOT when running > the test() function [0]. I don't think meson ever set MESON_BUILD_ROOT during tests, so afaict the portlock logic just just never worked with meson? > As a result each test uses its own "portlock" directory [1]. The small TAP > test 001_portlock_env_test.pl shows the test environment variables. As we > can see MESON_BUILD_ROOT is really undefined. I'm rather baffled this hasn't caused more problems... I have recently seen a CI failure that looked like it likely was caused by this. It was in a back branch, and I thought that was the explanation, due to the portlock logic not yet existing. But the portlock logic is old enough, so it likely was this. But I would have expected many more errors. > Can we explicitly set the MESON_BUILD_ROOT environment variable when running > a test? With included patch for the src/tools/testwrap file, each instance > gets an unique TCP port. I don't like that, feels like a "namespace violation" to set a MESON_* variable, why not set the top_builddir or a dedicated variable? And I don't think it should be done in testwrap, but to test_env in the top-level meson.build. Something like the attached? Greetings, Andres Freund
Вложения
В списке pgsql-hackers по дате отправления: