Skip to content

Commit c900960

Browse files
committed
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
1 parent b4e7b91 commit c900960

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/bin/scripts/vacuumdb.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
*-------------------------------------------------------------------------
1111
*/
1212

13+
#ifdef WIN32
14+
#define FD_SETSIZE 1024 /* must set before winsock2.h is included */
15+
#endif
16+
1317
#include "postgres_fe.h"
1418

1519
#ifdef HAVE_SYS_SELECT_H
@@ -446,7 +450,7 @@ vacuum_one_database(const char *dbname, vacuumingOptions *vacopts,
446450
if (PQsocket(conn) >= FD_SETSIZE)
447451
{
448452
fprintf(stderr,
449-
_("%s: too many jobs for this platform -- try %d"),
453+
_("%s: too many jobs for this platform -- try %d\n"),
450454
progname, i);
451455
exit(1);
452456
}

0 commit comments

Comments
 (0)