On 04/17/2014 08:35 AM, Craig Ringer wrote:
> On 04/17/2014 04:47 AM, Petr Jelinek wrote:
>>
>> Well the logging is just too spammy in general when it comes to dynamic
>> bgworkers but that's easy to fix in the future, no need to make
>> decisions for 9.4.
>
> Agreed - it's the *API* that we need sorted out for 9.4, and log output
> isn't something Pg tends to consider part of the API.
>
>> However I really don't like that I have to exit with exit code 1, which
>> is normally used as failure, if I want to shutdown my dynamic bgworker
>> once it has finished the work. And this behavior is something we can set
>> properly only once...
>
> As far as I can tell we have a couple of options:
>
> - Redefine what the exit codes mean so that exit 0 suppresses
> auto-restart and exits silently. Probably simplest.
I'm now strongly in favour of this alternative.
I've just noticed that the bgworker control interfaces do not honour
bgw.bgw_restart_time = BGW_NEVER_RESTART if you exit with status zero.
This means that it's not simply a problem where you can't say "restart
me if I crash, but not if I exit normally".
You also can't even say "never restart me at all". Because
"BGW_NEVER_RESTART" seems to really mean "BGW_NO_RESTART_ON_CRASH".
This _needs_fixing before 9.4.
-- Craig Ringer http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services