Re: Why does logical replication launcher exit with exit code 1?

From: Gavin Flower <GavinFlower(at)archidevsys(dot)co(dot)nz>
To: Andres Freund <andres(at)anarazel(dot)de>, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Why does logical replication launcher exit with exit code 1?
Date: 2017-08-01 23:19:39
Message-ID: c3a7bc6e-1b19-afe6-9a40-54bdf214ae4c@archidevsys.co.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 02/08/17 11:03, Andres Freund wrote:
> Hi,
>
> 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.
>
> - Andres
>
>
Returning zero to indicate success is a holdover to the time computers
could only run one program at a time. At the end of the code there was
a jump table of 4 byte entries. The first entry with a displacement of
zero was the location to jump to for a normal exit, subsequent entries
where for various error conditions. This why often return codes where
in positive multiples of 4, since we don't use jump tables now - more &
more people are using any integers they want.

So apart from convention, returning zero is no longer held to be a
sacred to indicate something exited okay. In fact since, zero could
simply mean a value was not explicitly assigned, hence it is actually a
very dangerous value to be used to indicate success!

Cheers,
Gavin

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2017-08-01 23:21:25 Re: Why does logical replication launcher exit with exit code 1?
Previous Message Andres Freund 2017-08-01 23:03:03 Re: Why does logical replication launcher exit with exit code 1?