1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-31 22:04:40 +03:00

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
This commit is contained in:
Michael Paquier
2019-08-27 09:12:10 +09:00
parent f6d5a5f6db
commit c4d75313ee

View File

@ -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);
}