Re: Injection points: preloading and runtime arguments

Поиск
Список
Период
Сортировка
От Andrey M. Borodin
Тема Re: Injection points: preloading and runtime arguments
Дата
Msg-id BF05D322-C71D-432C-8029-8315BEABA5A1@yandex-team.ru
обсуждение исходный текст
Ответ на Injection points: preloading and runtime arguments  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Injection points: preloading and runtime arguments
Re: Injection points: preloading and runtime arguments
Список pgsql-hackers
Hi!

> On 20 May 2024, at 08:18, Michael Paquier <michael@paquier.xyz> wrote:

Both features look useful to me.
I've tried to rebase my test of CV sleep during multixact generation[0]. I used it like this:

    INJECTION_POINT_PRELOAD("GetNewMultiXactId-done");
    multi = GetNewMultiXactId(nmembers, &offset); // starts critsection
    INJECTION_POINT("GetNewMultiXactId-done");

And it fails like this:

2024-05-20 16:50:40.430 +05 [21830] 001_multixact.pl LOG:  statement: select test_create_multixact();
TRAP: failed Assert("CritSectionCount == 0 || (context)->allowInCritSection"), File: "mcxt.c", Line: 1185, PID: 21830
0   postgres                            0x0000000101452ed0 ExceptionalCondition + 220
1   postgres                            0x00000001014a6050 MemoryContextAlloc + 208
2   postgres                            0x00000001011c3bf0 dsm_create_descriptor + 72
3   postgres                            0x00000001011c3ef4 dsm_attach + 400
4   postgres                            0x00000001014990d8 dsa_attach + 24
5   postgres                            0x00000001011c716c init_dsm_registry + 240
6   postgres                            0x00000001011c6e60 GetNamedDSMSegment + 456
7   injection_points.dylib              0x0000000101c871f8 injection_init_shmem + 60
8   injection_points.dylib              0x0000000101c86f1c injection_wait + 64
9   postgres                            0x000000010148e228 InjectionPointRunInternal + 376
10  postgres                            0x000000010148e0a4 InjectionPointRun + 32
11  postgres                            0x0000000100cab798 MultiXactIdCreateFromMembers + 344
12  postgres                            0x0000000100cab604 MultiXactIdCreate + 312

Am I doing something wrong? Seems like extension have to know too that it is preloaded.


Best regards, Andrey Borodin.

[0] https://www.postgresql.org/message-id/0925F9A9-4D53-4B27-A87E-3D83A757B0E0%40yandex-team.ru


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

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: remaining sql/json patches
Следующее
От: "Andrey M. Borodin"
Дата:
Сообщение: Re: Injection points: preloading and runtime arguments