Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, jungleboogie0(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'
Date: 2019-08-21 07:36:19
Message-ID: 20190821073619.GC26424@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Tue, Aug 20, 2019 at 10:40:05PM -0400, Alvaro Herrera wrote:
> On 2019-Aug-21, Michael Paquier wrote:
>
> > + if (PQsocket(conn) >= FD_SETSIZE)
> > + {
> > + fprintf(stderr, "too many jobs for this platform's select()\n");
> > + exit(1);
> > + }
>
> 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 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.
--
Michael

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Petar Masev 2019-08-21 07:53:11 RE: Postgres 11.5.1 failed installation
Previous Message Michael Paquier 2019-08-21 07:27:24 Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'