From 74b8e6a698025fbea5a5e22ea09d07d97188c1d6 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 8 Jul 2024 09:43:59 +0900 Subject: [PATCH] Re-enable autoruns for cmd.exe on Windows This acts as a revert of b83747a8a65b and 9886744a361b. As pointed out by Noah, HEAD and REL_17_STABLE are in a weird state where the code paths adding /D would limit the spawn of child processes, but we still have code paths where the spawn of more than one child process(es) would be possible. Let's remove these /D switches for now, to bring back the code into a state consistent with how autorun is configured on a Windows host. Reported-by: Noah Misch Discussion: https://postgr.es/m/20240630021211.f3.nmisch@google.com Backpatch-through: 17 --- src/bin/pg_ctl/pg_ctl.c | 4 ++-- src/test/regress/pg_regress.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index 405e223c190..57ed8c8e294 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -552,11 +552,11 @@ start_postmaster(void) else close(fd); - cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"", + cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"", comspec, exec_path, pgdata_opt, post_opts, DEVNULL, log_file); } else - cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" 2>&1\"", + cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" 2>&1\"", comspec, exec_path, pgdata_opt, post_opts, DEVNULL); if (!CreateRestrictedProcess(cmd, &pi, false)) diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 06f6775fc65..7e7ad256000 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -1244,7 +1244,7 @@ spawn_process(const char *cmdline) comspec = "CMD"; memset(&pi, 0, sizeof(pi)); - cmdline2 = psprintf("\"%s\" /d /c \"%s\"", comspec, cmdline); + cmdline2 = psprintf("\"%s\" /c \"%s\"", comspec, cmdline); if (!CreateRestrictedProcess(cmdline2, &pi)) exit(2);