On Mon, Jul 28, 2014 at 9:38 PM, Alvaro Herrera
<alvhe...@2ndquadrant.com> wrote:
> Robert Haas wrote:
>> OK, I think I see the problem.  In EXEC_BACKEND mode,
>> SubPostmasterMain() calls InitProcess() before IsBackgroundWorker has
>> been set.  InitProcess() therefore pulls the PGPROC for the worker
>> from freeProcs rather than bgworkerFreeProcs.  By exit time,
>> IsBackgroundWorker has been set, so the PGPROC gets put back on the
>> bgworkerFreeProcs list.  Eventually there are no regular PGPROCs left;
>> they've all been moved to the bgworkerFreeProcs list.
>
> Doh.  I'm surprised -- I tested a worker that crashed over and over to
> ensure PGPROCs were reused sanely.  I guess I forgot to run it under
> EXEC_BACKEND.
>
> Are you fixing it?

Working on it now.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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