postgres.git / summary / log / commit / refs
commit 128e9b2cc9796da5f5b3056ab8baa4652dd68480
Author: Michael Paquier <michael@paquier.xyz>
Date: Tue Aug 27 00:11:43 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 5131bd9198d..f97f4be0337 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
@@ -445,7 +449,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: ad9b419f7cbe]