On Wed, Aug 30, 2017 at 7:39 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Amit Kapila <amit.kapil...@gmail.com> writes: >> On Tue, Aug 29, 2017 at 10:05 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: >> ! /* Make sure any existing workers are gracefully shut down */ >> ExecShutdownGatherWorkers(node); > >> The above call doesn't ensure the shutdown. It just ensures that we >> receive all messages from parallel workers. Basically, it doesn't >> call WaitForParallelWorkersToExit. > > Perhaps you should submit a patch to rename ExecShutdownGatherWorkers > to something less misleading, then. But the previous comment there > was even more wrong :-(
Your (Tom's) proposed comment doesn't seem wrong to me. Shutting down workers consists of several stages. We destroy the tuple queues -- which will cause them to cease generating tuples once they notice -- then we wait for them to send us an 'X' message to indicate that they've shut down cleanly -- then they actually exit -- then the postmaster notices and releases their slots for reuse. After ExecShutdownGatherWorkers has completed, the first two of those things have finished but the third and fourth may not be quite done yet. I'd say it's fair to say, at that point, that the workers are gracefully shut down. -- 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