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

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: jungle boogie <jungleboogie0@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, Dilip Kumar <dilipbalaut@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2019-08-27T12:29:39Z
Lists: pgsql-bugs
On 2019-Aug-27, Michael Paquier wrote:

> Thanks for testing out.  And my apologies for introducing the issue in
> the first place.

BTW one nit: in deference to src/tools/git_changelog, it would be better
to make all branch commit messages exactly the same, and if you want to
make per-branch distinctions make them in the unified text ("On branches
so and so, also add a newline", etc) rather than writing per branch
slightly different messages.  They way you did it, git_changelog creates
three entries when it could have been a single one:

Author: Michael Paquier <michael@paquier.xyz>
Branch: REL_11_STABLE [128e9b2cc] 2019-08-27 09:11:43 +0900
Branch: REL_10_STABLE [c90096009] 2019-08-27 09:11:48 +0900
Branch: REL9_6_STABLE [c4d75313e] 2019-08-27 09:12:10 +0900
Branch: REL9_5_STABLE [4ed3bda49] 2019-08-27 09:12:14 +0900

    Fix failure of --jobs with vacuumdb on Windows
    
    FD_SETSIZE needs to be declared before winsock2.h, or it is possible to
    run into buffer overflow issues when using --jobs.  This is similar to
    pgbench's solution done in a23c641.
    
    This has been introduced by 71d84ef, and older versions have been using
    the default value of FD_SETSIZE, defined at 64.  While on it, add a
    missing newline to the previously-added error message.
    
    Per buildfarm member jacana, but this impacts all Windows animals
    running the TAP tests.  I have reproduced the failure locally to check
    the patch.
    
    Author: Michael Paquier
    Reviewed-by: Andrew Dunstan
    Discussion: https://postgr.es/m/20190826054000.GE7005@paquier.xyz
    Backpatch-through: 9.5

Author: Michael Paquier <michael@paquier.xyz>
Branch: REL_12_STABLE [b783a38d4] 2019-08-27 09:11:38 +0900

    Fix failure of --jobs with vacuumdb on Windows
    
    FD_SETSIZE needs to be declared before winsock2.h, or it is possible to
    run into buffer overflow issues when using --jobs.  This is similar to
    pgbench's solution done in a23c641.
    
    This has been introduced by 71d84ef, and older versions have been using
    the default value of FD_SETSIZE, defined at 64.
    
    Per buildfarm member jacana, but this impacts all Windows animals
    running the TAP tests.  I have reproduced the failure locally to check
    the patch.
    
    Author: Michael Paquier
    Reviewed-by: Andrew Dunstan
    Discussion: https://postgr.es/m/20190826054000.GE7005@paquier.xyz
    Backpatch-through: 9.5

Author: Michael Paquier <michael@paquier.xyz>
Branch: master [9acda7311] 2019-08-27 09:11:31 +0900

    Fix failure of --jobs with reindexdb and vacuumdb on Windows
    
    FD_SETSIZE needs to be declared before winsock2.h, or it is possible to
    run into buffer overflow issues when using --jobs.  This is similar to
    pgbench's solution done in a23c641.
    
    This has been introduced by 71d84ef, and older versions have been using
    the default value of FD_SETSIZE, defined at 64.
    
    Per buildfarm member jacana, but this impacts all Windows animals
    running the TAP tests.  I have reproduced the failure locally to check
    the patch.
    
    Author: Michael Paquier
    Reviewed-by: Andrew Dunstan
    Discussion: https://postgr.es/m/20190826054000.GE7005@paquier.xyz
    Backpatch-through: 9.5


Thanks!


-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



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