On 14 January 2014 17:29, Robert Haas <robertmh...@gmail.com> wrote:
> On Mon, Dec 23, 2013 at 12:46 PM, Robert Haas <robertmh...@gmail.com> wrote:
>> Oh, dear.  That's rather embarrassing.
>>
>> Incremental (incremental-shm-mq.patch) and full (shm-mq-v3.patch)
>> patches attached.
>
> OK, I have pushed the patches in this stack.  I'm not sure we quite
> concluded the review back-and-forth but nobody really seems to have
> had serious objections to this line of attack, other than wanting some
> more comments which I have added.  I don't doubt that there will be
> more things to tweak and tune here, and a whole lot more stuff that
> needs to be built using this infrastructure, but I don't think the
> code that's here is going to get better for remaining outside the tree
> longer.
>
> I decided not to change the dsm_toc patch to use functions instead of
> macros as Andres suggested; the struct definition would still have
> needed to be public, so any change would still need a recompile, at
> least if the size of the struct changed.  It could be changed to work
> with a palloc'd chunk, but then you need to worry about
> context-lifespan memory leaks and it so didn't seem worth it.  I can't
> imagine this having a lot of churn, anyway.

postgres=# SELECT test_shm_mq(32768, (select
string_agg(chr(32+(random()*96)::int), '') from generate_series(1,3)),
1, 10);
ERROR:  could not register background process
HINT:  You may need to increase max_worker_processes.
STATEMENT:  SELECT test_shm_mq(32768, (select
string_agg(chr(32+(random()*96)::int), '') from generate_series(1,3)),
1, 10);
LOG:  registering background worker "test_shm_mq"
LOG:  starting background worker process "test_shm_mq"
ERROR:  could not register background process
HINT:  You may need to increase max_worker_processes.
ERROR:  unable to map dynamic shared memory segment
LOG:  worker process: test_shm_mq (PID 21939) exited with exit code 1
LOG:  unregistering background worker "test_shm_mq"


What's going on here?  This occurs when starting Postgres and run as
the first statement.

I also noticed that everything exits with exit code 1:


postgres=# SELECT test_shm_mq(32768, (select
string_agg(chr(32+(random()*96)::int), '') from
generate_series(1,400)), 10000, 1);
LOG:  registering background worker "test_shm_mq"
LOG:  starting background worker process "test_shm_mq"
 test_shm_mq
-------------

(1 row)

LOG:  worker process: test_shm_mq (PID 22041) exited with exit code 1
LOG:  unregistering background worker "test_shm_mq"

-- 
Thom


-- 
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