mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
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.2, since testing shows no issues even though the "deadman-switch" does not exist in this version.
This commit is contained in:
parent
2c875a1dea
commit
9c2ba6ad09
@ -2273,6 +2273,19 @@ CleanupBackend(int pid,
|
|||||||
* assume everything is all right and simply remove the backend from the
|
* assume everything is all right and simply remove the backend from the
|
||||||
* active backend list.
|
* active backend list.
|
||||||
*/
|
*/
|
||||||
|
#ifdef WIN32
|
||||||
|
/*
|
||||||
|
* On win32, also treat ERROR_WAIT_NO_CHILDREN (128) as nonfatal
|
||||||
|
* case, since that sometimes happens under load when the process fails
|
||||||
|
* to start properly (long before it starts using shared memory).
|
||||||
|
*/
|
||||||
|
if (exitstatus == ERROR_WAIT_NO_CHILDREN)
|
||||||
|
{
|
||||||
|
LogChildExit(LOG, _("server process"), pid, exitstatus);
|
||||||
|
exitstatus = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!EXIT_STATUS_0(exitstatus) && !EXIT_STATUS_1(exitstatus))
|
if (!EXIT_STATUS_0(exitstatus) && !EXIT_STATUS_1(exitstatus))
|
||||||
{
|
{
|
||||||
HandleChildCrash(pid, exitstatus, _("server process"));
|
HandleChildCrash(pid, exitstatus, _("server process"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user