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

Started by Alvaro Herreraalmost 2 years ago3 messagescomitters
Jump to latest
#1Alvaro Herrera
alvherre@2ndquadrant.com

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: /messages/by-id/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(-)

#2Alexander Korotkov
aekorotkov@gmail.com
In reply to: Alvaro Herrera (#1)
Re: pgsql: Add injection-point test for new multixact CV usage

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: /messages/by-id/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

#3Michael Paquier
michael@paquier.xyz
In reply to: Alexander Korotkov (#2)
Re: pgsql: Add injection-point test for new multixact CV usage

On Thu, Aug 22, 2024 at 01:24:33AM +0300, Alexander Korotkov wrote:

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

Thanks. I've fixed this one in 94a3373ac5c3 while tweaking the area.
--
Michael