Re: [HACKERS] Why does logical replication launcher exit with exitcode 1?
От | Andres Freund |
---|---|
Тема | Re: [HACKERS] Why does logical replication launcher exit with exitcode 1? |
Дата | |
Msg-id | 20170802004054.r2hl6n5v4izhnhcz@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] Why does logical replication launcher exit with exitcode 1? (Robert Haas <robertmhaas@gmail.com>) |
Список | pgsql-hackers |
On 2017-08-01 20:37:07 -0400, Robert Haas wrote: > On Tue, Aug 1, 2017 at 7:03 PM, Andres Freund <andres@anarazel.de> wrote: > > On 2017-08-02 10:58:32 +1200, Thomas Munro wrote: > >> When I shut down a cluster that isn't using logical replication, it > >> always logs a line like the following. So do the build farm members I > >> looked at. I didn't see anything about this in the open items list -- > >> isn't it a bug? > >> > >> 2017-08-02 10:39:25.007 NZST [34781] LOG: worker process: logical > >> replication launcher (PID 34788) exited with exit code 1 > > > > Exit code 0 signals that a worker should be restarted. Therefore > > graceful exit can't really use that. I think a) we really need to > > improve bgworker infrastructure around that b) shows the limit of using > > bgworkers for this kinda thing - we should probably have a more bgworker > > like infrastructure for internal workers. > > You might've missed commit be7558162acc5578d0b2cf0c8d4c76b6076ce352. Not really, just thinko-ing it. We don't want to unregister, so we can't return 0, IOW, I just * -1'd my comment ;) We intentionally return 1, so we *do* get restarted: else if (IsLogicalLauncher()) { ereport(DEBUG1, (errmsg("logical replication launcher shutting down"))); /* * The logical replication launcher can be stopped at any time. * Use exit status 1 so the backgroundworker is restarted. */ proc_exit(1); } - Andres
В списке pgsql-hackers по дате отправления: