postgres.git / summary / log / commit / refs

commit    c4d75313ee7ba173d00272fb1f0b7b1aebbb2f58
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Tue Aug 27 00:12:10 2019 +0000
First released in: 9.5.20, 9.6.16, 10.11, 11.6, 12.0

    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


src/bin/scripts/vacuumdb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c index a4fe5f86294..14c7306bab9 100644 --- a/src/bin/scripts/vacuumdb.c +++ b/src/bin/scripts/vacuumdb.c @@ -10,6 +10,10 @@ *------------------------------------------------------------------------- */ +#ifdef WIN32 +#define FD_SETSIZE 1024 /* must set before winsock2.h is included */ +#endif + #include "postgres_fe.h" #ifdef HAVE_SYS_SELECT_H @@ -440,7 +444,7 @@ vacuum_one_database(const char *dbname, vacuumingOptions *vacopts, if (PQsocket(conn) >= FD_SETSIZE) { fprintf(stderr, - _("%s: too many jobs for this platform -- try %d"), + _("%s: too many jobs for this platform -- try %d\n"), progname, i); exit(1); } [parent: f6d5a5f6dba5]