Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 594419e

Browse files
committed
Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Win32,
since it can happen when a process fails to start when the system is under high load. Per several bug reports and many peoples investigation. Back-patch to 8.4, which is as far back as the "deadman-switch" for shared memory access exists.
1 parent f7270a6 commit 594419e

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/backend/postmaster/postmaster.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
*
3838
*
3939
* IDENTIFICATION
40-
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.615 2010/07/20 00:47:52 rhaas Exp $
40+
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.616 2010/09/16 20:37:13 mha Exp $
4141
*
4242
* NOTES
4343
*
@@ -2588,6 +2588,19 @@ CleanupBackend(int pid,
25882588
* assume everything is all right and proceed to remove the backend from
25892589
* the active backend list.
25902590
*/
2591+
#ifdef WIN32
2592+
/*
2593+
* On win32, also treat ERROR_WAIT_NO_CHILDREN (128) as nonfatal
2594+
* case, since that sometimes happens under load when the process fails
2595+
* to start properly (long before it starts using shared memory).
2596+
*/
2597+
if (exitstatus == ERROR_WAIT_NO_CHILDREN)
2598+
{
2599+
LogChildExit(LOG, _("server process"), pid, exitstatus);
2600+
exitstatus = 0;
2601+
}
2602+
#endif
2603+
25912604
if (!EXIT_STATUS_0(exitstatus) && !EXIT_STATUS_1(exitstatus))
25922605
{
25932606
HandleChildCrash(pid, exitstatus, _("server process"));

0 commit comments

Comments
 (0)