Some debug info related to my previous post -

* thread #1: tid = 0x2601e9, 0x0000000100313e5e postgres`ResourceOwnerEnlargeDSMs + 10, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x130)
  * frame #0: 0x0000000100313e5e postgres`ResourceOwnerEnlargeDSMs + 10
    frame #1: 0x0000000100202a5f postgres`dsm_create_descriptor + 22
    frame #2: 0x0000000100202853 postgres`dsm_create + 43
    frame #3: 0x0000000101a17717 pg_mystem.so`_PG_init + 39


Hello,
sorry for my repost from psql-novice, probably it was not a right place for my question.

I'm trying to understand how to work with dynamic shared memory, message queues and workers.
The problem is I can not initialize any 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...
dynamic_shared_memory_type = posix
OSX 10.11.5
PostgreSQL 9.5.3

--
Best regards,
Max Fomichev



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to