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

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Michael Paquier <michael@paquier.xyz>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@2ndquadrant.com>, Dilip Kumar <dilipbalaut@gmail.com>, jungleboogie0@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2019-08-21T02:07:49Z
Lists: pgsql-bugs
Hi,

On 2019-08-21 10:58:54 +0900, Michael Paquier wrote:
> On Tue, Aug 20, 2019 at 09:05:53AM -0700, Andres Freund wrote:
> > I think the error message ought be reformulated, so users have a chance
> > to actually understand what they need to change to avoid the error. At
> > least something roughly like "too many jobs for this platform's select()".
> 
> pgbench needs an extra fix then?

Well, there the commandline option talks about clients? Whereas
vacuumdb/reindexdb talk about jobs, but the old message talked about
clients.  So no, I don't think it makes sense to adapt it the same way.


> > ISTM that we should fail in ParallelSlotsSetup(), rather than
> > ParallelSlotsGetIdle() though? That's always going to be earlier, and
> > there's no way to get into the problematic situation at a later point,
> > no?
> 
> Okay, done this way.  What do you think about the attached?
> --
> Michael

> @@ -246,6 +232,18 @@ ParallelSlotsSetup(const char *dbname, const char *host, const char *port,
>  		{
>  			conn = connectDatabase(dbname, host, port, username, prompt_password,
>  								   progname, echo, false, true);
> +
> +			/*
> +			 * Fail immediately if trying to use an index in an unsupported
> +			 * range.  Doing a hard exit here is not beautiful, but that's
> +			 * not worth complicating the logic.
> +			 */

"that's not worth" sounds odd to me in the above sentence. I don't quite
get the half-hearted rewrite of the comment from pgbench.c.


Greetings,

Andres Freund



Commits

  1. Fix error handling of vacuumdb when running out of fds

  2. Fix error handling of vacuumdb and reindexdb when running out of fds

  3. Fix compilation failure of vacuumdb and reindexdb with OpenBSD

  4. Improve Assert output

  5. Refactor parallelization processing code in src/bin/scripts/

  6. vacuumdb: enable parallel mode