diff options
author | Michael Paquier <michael@paquier.xyz> | 2019-08-27 09:12:14 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2019-08-27 09:12:14 +0900 |
commit | 4ed3bda49d5ed4616bfca80dcb3b409be9720aff (patch) | |
tree | 7637d0c867cee0e01fd012c30fe3197f7e628893 /src | |
parent | 33066b0142893ead9b1bd9709552a9f173ffddb3 (diff) | |
download | postgresql-4ed3bda49d5ed4616bfca80dcb3b409be9720aff.tar.gz postgresql-4ed3bda49d5ed4616bfca80dcb3b409be9720aff.zip |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/scripts/vacuumdb.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c index 4aab4434882..068ae7a189e 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 @@ -439,7 +443,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); } |