Fix erroneous Assert() in syslogger process start in EXEC_BACKEND case,
per ITAGAKI Takahiro. Also, rewrite syslogger_forkexec() in hopes of eliminating the confusion in the first place.
This commit is contained in:
parent
bbda96d76d
commit
f316222930
|
@ -18,7 +18,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.39 2007/09/20 18:19:08 adunstan Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.40 2007/09/22 18:19:18 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -608,10 +608,8 @@ static pid_t
|
|||
syslogger_forkexec(void)
|
||||
{
|
||||
char *av[10];
|
||||
int ac = 0,
|
||||
bufc = 0,
|
||||
i;
|
||||
char numbuf[2][32];
|
||||
int ac = 0;
|
||||
char filenobuf[32];
|
||||
|
||||
av[ac++] = "postgres";
|
||||
av[ac++] = "--forklog";
|
||||
|
@ -620,21 +618,18 @@ syslogger_forkexec(void)
|
|||
/* static variables (those not passed by write_backend_variables) */
|
||||
#ifndef WIN32
|
||||
if (syslogFile != NULL)
|
||||
snprintf(numbuf[bufc++], 32, "%d", fileno(syslogFile));
|
||||
snprintf(filenobuf, sizeof(filenobuf), "%d",
|
||||
fileno(syslogFile));
|
||||
else
|
||||
strcpy(numbuf[bufc++], "-1");
|
||||
strcpy(filenobuf, "-1");
|
||||
#else /* WIN32 */
|
||||
if (syslogFile != NULL)
|
||||
snprintf(numbuf[bufc++], 32, "%ld",
|
||||
snprintf(filenobuf, sizeof(filenobuf), "%ld",
|
||||
_get_osfhandle(_fileno(syslogFile)));
|
||||
else
|
||||
strcpy(numbuf[bufc++], "0");
|
||||
strcpy(filenobuf, "0");
|
||||
#endif /* WIN32 */
|
||||
|
||||
/* Add to the arg list */
|
||||
Assert(bufc <= lengthof(numbuf));
|
||||
for (i = 0; i < bufc; i++)
|
||||
av[ac++] = numbuf[i];
|
||||
av[ac++] = filenobuf;
|
||||
|
||||
av[ac] = NULL;
|
||||
Assert(ac < lengthof(av));
|
||||
|
@ -652,7 +647,7 @@ syslogger_parseArgs(int argc, char *argv[])
|
|||
{
|
||||
int fd;
|
||||
|
||||
Assert(argc == 5);
|
||||
Assert(argc == 4);
|
||||
argv += 3;
|
||||
|
||||
#ifndef WIN32
|
||||
|
|
Loading…
Reference in a new issue