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