Re: ERROR: too many dynamic shared memory segments

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Jakub Glapa <jakub(dot)glapa(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ERROR: too many dynamic shared memory segments
Date: 2018-02-02 20:01:15
Message-ID: 3647.1517601675@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> That turned out to produce more than one problem. I find that the
> select_parallel test then fails like this:
> ERROR: could not find key 18446744073709486082 in shm TOC at 0x10be98040
> The fix for that problem seems to be:

> /* Recreate error queues. */
> error_queue_space =
> - shm_toc_lookup(pcxt->toc, PARALLEL_KEY_ERROR_QUEUE, false);
> + shm_toc_lookup(pcxt->toc, PARALLEL_KEY_ERROR_QUEUE, true);
> + Assert(pcxt->nworkers == 0 || error_queue_space != NULL);

I happened across this patch while preparing the release notes, and
I'm quite distressed by it, because it completely breaks the point
of what I'd done in commit d46633506 (to wit, to not just blindly
assume, nor just Assert, that shm_toc_lookup always succeeds).
Do you mind if I change that Assert to a run-time test?

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Robert Haas 2018-02-02 20:19:49 Re: ERROR: too many dynamic shared memory segments
Previous Message geoff hoffman 2018-02-02 19:40:53 Re: Ensure extension exists

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2018-02-02 20:19:49 Re: ERROR: too many dynamic shared memory segments
Previous Message Simon Riggs 2018-02-02 19:41:37 Re: [HACKERS] make async slave to wait for lsn to be replayed