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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy