seg fault on dsm_create call

Поиск
Список
Период
Сортировка
От Max Fomichev
Тема seg fault on dsm_create call
Дата
Msg-id 54c511f5-4073-ce40-c4fc-5649fd8c966d@gmail.com
обсуждение исходный текст
Ответы Re: seg fault on dsm_create call  (Andrej <andrej.groups@gmail.com>)
Список pgsql-novice
Hello.
I'm trying to understand how to work with dynamic shared memory, message
queues and workers.
The problem is I can not initialize a dsm segment -

     void _PG_init() {
         ...
         dsm_segment *seg = dsm_create(32768, 0); // Segmentation fault here
         ...
         BackgroundWorker worker;
         sprintf(worker.bgw_name, "mystem wrapper process");
         worker.bgw_flags = BGWORKER_SHMEM_ACCESS;
         worker.bgw_start_time = BgWorkerStart_RecoveryFinished;
         worker.bgw_restart_time = BGW_NEVER_RESTART;
         worker.bgw_main = mainProc;
         worker.bgw_notify_pid = 0;
         RegisterBackgroundWorker(&worker);
     }

Also I was trying to move dsm_create call to a worker, but with the same
result -

     static void mainProc(Datum) {
         ...
         dsm_segment *seg = dsm_create(32768, 0); // Segmentation fault here
         ...
         pqsignal(SIGTERM, mystemSigterm);
         BackgroundWorkerUnblockSignals();
         ...

What could be a reason and what am I doing wrong?

PS test/modules/test_shm_mq works fine...


--
Best regards,
Max Fomichev



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

Предыдущее
От: marc rassbach
Дата:
Сообщение: Re: failing to make LATIN1 on locale C system - what am I doing wrong?
Следующее
От: Andrej
Дата:
Сообщение: Re: seg fault on dsm_create call