mirror of
https://github.com/postgres/postgres.git
synced 2025-04-29 13:56:47 +03:00
Fix kill() call in elog() so that it gets its own pid by calling getpid().
MyProcPid global variable is set to 0 when postgres starts as a command (not as a backend daemon). This leads issuing SIGQUIT to the process group, not the process itself. As a result, parent sh gets core dumped in the Wisconsin benchmark test.
This commit is contained in:
parent
e062a176a8
commit
075dc252c7
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.39 1999/02/13 23:19:47 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.40 1999/04/16 06:38:17 ishii Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -221,7 +221,11 @@ elog(int lev, const char *fmt,...)
|
|||||||
ProcReleaseSpins(NULL); /* get rid of spinlocks we hold */
|
ProcReleaseSpins(NULL); /* get rid of spinlocks we hold */
|
||||||
if (!InError)
|
if (!InError)
|
||||||
{
|
{
|
||||||
|
if (MyProcPid == 0) {
|
||||||
|
kill(getpid(), SIGQUIT);
|
||||||
|
} else {
|
||||||
kill(MyProcPid, SIGQUIT); /* abort to traffic cop */
|
kill(MyProcPid, SIGQUIT); /* abort to traffic cop */
|
||||||
|
}
|
||||||
pause();
|
pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user