On 2019-Aug-21, Michael Paquier wrote:
> On Tue, Aug 20, 2019 at 10:40:05PM -0400, Alvaro Herrera wrote:
> >
> > BTW why fprintf? Since you can get into this by careless use of -j,
> > ISTM that this should be a translatable string. I'd consider
> > pg_log_fatal(). Maybe something like "Argument of -j too large for this
> > platform -- try %d", numslots - i.
>
> If giving a recommendation, shouldn't that be linked only to "i"
> instead? If for example numslots = 1024, but that we get an error
> after allocating 128 slots because of a lack of fds in the range, then
> we would recommend 896, which would still result in an error.
I was too tired last night to think this through properly ... the first
few times I wrote that were even more wrong. "i" seems right.
> I quite like the suggestion from Andres to keep the message simple
> with "too many jobs for this platform's select()". You are indeed
> right about the pg_log_fatal() part here, I have changed the patch to
> do that on my local branch.
Well, it's a user-facing error, so I'd rather make it user-friendly.
It doesn't seem difficult, or unreliable enough not to try.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services