On Fri, Mar 24, 2017 at 1:20 PM, Peter Eisentraut <peter.eisentr...@2ndquadrant.com> wrote: > On 2/15/17 12:11, Robert Haas wrote: >> On Wed, Feb 15, 2017 at 11:30 AM, Peter Eisentraut >> <peter.eisentr...@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 background workers 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 -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers