On Fri, Aug 26, 2016 at 6:20 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Latest from lorikeet: > http://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=lorikeet&dt=2016-08-26%2008%3A37%3A27 > > TRAP: FailedAssertion("!(vmq->mq_sender == ((void *)0))", File: > "/home/andrew/bf64/root/REL9_6_STABLE/pgsql.build/../pgsql/src/backend/storage/ipc/shm_mq.c", > Line: 220) >
Do you think, it is due to some recent change or we are just seeing now as it could be timing specific issue? So here what seems to be happening is that during worker startup, we are trying to set the sender for a shared memory queue and the same is already set. Now, one theoretical possibility of the same could be that the two workers get the same ParallelWorkerNumber which is then used to access the shm queue (refer ParallelWorkerMain/ExecParallelGetReceiver). We are setting the ParallelWorkerNumber in below code which seems to be doing what it is suppose to do: LaunchParallelWorkers() { .. for (i = 0; i < pcxt->nworkers; ++i) { memcpy(worker.bgw_extra, &i, sizeof(int)); if (!any_registrations_failed && RegisterDynamicBackgroundWorker(&worker, &pcxt->worker[i].bgwhandle)) .. } Can some reordering impact the above code? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers