Tom Lane wrote: > Robert Haas <robertmh...@gmail.com> writes: > > On Mon, Aug 1, 2016 at 4:18 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > >> Now, I'm undecided whether to flush that context only in parallel workers, > >> or to try to make it go away for all bgworkers of any stripe. The latter > >> seems a little better from a security standpoint, but I wonder if anyone > >> has a use-case where that'd be a bad idea? > > > I think it would be better to get rid of it in all bgworkers. > > I looked into this, and immediately found this in the spot in postmaster.c > that would be the obvious place to kill the PostmasterContext: > > /* Do NOT release postmaster's working memory context */ > > MyBgworkerEntry = &rw->rw_worker; > StartBackgroundWorker(); > > This comment was in Alvaro's original commit adding bgworkers (da07a1e8).
Hm, I don't have the development branch in this laptop. I might find some evidence in the old one, but I won't be able to reach it till tonight. > It looks to me like the reason for it is simply not having bothered to > copy the rw->rw_worker data to somewhere that would survive deletion > of the PostmasterContext. I wonder though if anyone remembers a more > fundamental reason? Surely the bgworker is not supposed to touch any > of the rest of the BackgroundWorkerList? I just checked BDR, which is the more complex code using workers I know of, and I don't see any reason why this cannot be changed. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers