Re: [HACKERS] error handling in RegisterBackgroundWorker - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: [HACKERS] error handling in RegisterBackgroundWorker
Date
Msg-id CAB7nPqTh9SadO5oVmjtjdwi9GZ48fWC64rciYcedi43oBG9LiQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] error handling in RegisterBackgroundWorker  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: error handling in RegisterBackgroundWorker  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
On Fri, Mar 24, 2017 at 1:20 PM, Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:
> On 2/15/17 12:11, Robert Haas wrote:
>> On Wed, Feb 15, 2017 at 11:30 AM, Peter Eisentraut
>> <peter.eisentraut@2ndquadrant.com> wrote:
>>> If RegisterBackgroundWorker() (the non-dynamic kind that is only
>>> loadable from shared_preload_libraries) fails to register the worker, it
>>> writes a log message and proceeds, ignoring the registration request.  I
>>> think that is a mistake, it should be a hard error.  The only way in
>>> practice to fix the problem is to change shared_preload_libraries or
>>> max_worker_processes, both requiring a restart anyway, so proceeding
>>> without the worker is not useful.
>>
>> I guess the question is whether people will prefer to have the
>> database start up and be missing the worker, or to have it not start.
>> As you point out, the former is likely to result in an eventual
>> restart, but the latter may lead to a longer period of downtime RIGHT
>> NOW.  People tend to really hate things that make the database not
>> start, so I'm not sure what's best here.
>
> Any other thoughts on this?  Seems like a potential usability issue.

What if we just let the user choose what they want with a new switch
in bgw_flags, but keep LOG the default? One behavior and the other
look both sensible to me.

@@ -824,7 +824,8 @@ RegisterBackgroundWorker(BackgroundWorker *worker)                                  "Up to %d
backgroundworkers can be
 
registered with the current settings.",                                  max_worker_processes,
       max_worker_processes),
 
-                 errhint("Consider increasing the configuration
parameter \"max_worker_processes\".")));
+                 errhint("Consider increasing the configuration
parameter \"max_worker_processes\"."),
+                 errcontext("registration of background worker
\"%s\"", worker->bgw_name)));        return;    }
No issues with this bit in 0001.
-- 
Michael



pgsql-hackers by date:

Previous
From: Craig Ringer
Date:
Subject: Re: [HACKERS] [PATCH] Transaction traceability - txid_status(bigint)
Next
From: Ashutosh Bapat
Date:
Subject: Re: [HACKERS] create_unique_path and GEQO