Thread: pgsql: Add injection-point test for new multixact CV usage

pgsql: Add injection-point test for new multixact CV usage

From
Alvaro Herrera
Date:
Add injection-point test for new multixact CV usage

Before commit a0e0fb1ba56f, multixact.c contained a case in the
multixact-read path where it would loop sleeping 1ms each time until
another multixact-create path completed, which was uncovered by any
tests.  That commit changed the code to rely on a condition variable
instead.  Add a test now, which relies on injection points and "loading"
thereof (because of it being in a critical section), per commit
4b211003ecc2.

Author: Andrey Borodin <x4mmm@yandex-team.ru>
Reviewed-by: Michaël Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/0925F9A9-4D53-4B27-A87E-3D83A757B0E0@yandex-team.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/768a9fd5535fddb781088b6f83132b9a1b1f5bd3

Modified Files
--------------
src/backend/access/transam/multixact.c        |   5 ++
src/test/modules/test_slru/Makefile           |   7 +-
src/test/modules/test_slru/meson.build        |   9 ++
src/test/modules/test_slru/t/001_multixact.pl | 124 ++++++++++++++++++++++++++
src/test/modules/test_slru/test_multixact.c   |  57 ++++++++++++
src/test/modules/test_slru/test_slru--1.0.sql |   6 ++
6 files changed, 207 insertions(+), 1 deletion(-)


Re: pgsql: Add injection-point test for new multixact CV usage

From
Alexander Korotkov
Date:
On Tue, Aug 20, 2024 at 9:35 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> Add injection-point test for new multixact CV usage
>
> Before commit a0e0fb1ba56f, multixact.c contained a case in the
> multixact-read path where it would loop sleeping 1ms each time until
> another multixact-create path completed, which was uncovered by any
> tests.  That commit changed the code to rely on a condition variable
> instead.  Add a test now, which relies on injection points and "loading"
> thereof (because of it being in a critical section), per commit
> 4b211003ecc2.
>
> Author: Andrey Borodin <x4mmm@yandex-team.ru>
> Reviewed-by: Michaël Paquier <michael@paquier.xyz>
> Discussion: https://postgr.es/m/0925F9A9-4D53-4B27-A87E-3D83A757B0E0@yandex-team.ru
>
> Branch
> ------
> master
>
> Details
> -------
> https://git.postgresql.org/pg/commitdiff/768a9fd5535fddb781088b6f83132b9a1b1f5bd3
>
> Modified Files
> --------------
> src/backend/access/transam/multixact.c        |   5 ++
> src/test/modules/test_slru/Makefile           |   7 +-
> src/test/modules/test_slru/meson.build        |   9 ++
> src/test/modules/test_slru/t/001_multixact.pl | 124 ++++++++++++++++++++++++++
> src/test/modules/test_slru/test_multixact.c   |  57 ++++++++++++
> src/test/modules/test_slru/test_slru--1.0.sql |   6 ++
> 6 files changed, 207 insertions(+), 1 deletion(-)

It seems that header files aren't alphabetically ordered here.

 #include "storage/proc.h"
 #include "storage/procarray.h"
 #include "utils/fmgrprotos.h"
+#include "utils/injection_point.h"
 #include "utils/guc_hooks.h"
 #include "utils/memutils.h"

------
Regards,
Alexander Korotkov
Supabase