Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE' - Mailing list pgsql-bugs

From Michael Paquier
Subject Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE'
Date
Msg-id 20190821073619.GC26424@paquier.xyz
Whole thread Raw
In response to Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE'  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE'  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List 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

Attachment

pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE'
Next
From: Petar Masev
Date:
Subject: RE: Postgres 11.5.1 failed installation