Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>, Dilip Kumar <dilipbalaut@gmail.com>, jungleboogie0@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2019-08-21T07:36:19Z
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
Commits
-
Fix error handling of vacuumdb when running out of fds
- a21ec1a959ef 9.5.20 landed
- eb91b8ee6572 9.6.16 landed
- 4fca1460099e 10.11 landed
- 5d76c8037329 11.6 landed
- 63fc3b124008 12.0 landed
-
Fix error handling of vacuumdb and reindexdb when running out of fds
- 71d84efba714 13.0 landed
-
Fix compilation failure of vacuumdb and reindexdb with OpenBSD
- 56f8f9624ba0 13.0 landed
-
Improve Assert output
- d78d452bc5ac 13.0 cited
-
Refactor parallelization processing code in src/bin/scripts/
- 5f3840370b63 13.0 cited
-
vacuumdb: enable parallel mode
- a17923204736 9.5.0 cited