Thread: Bad interaction between elog and postmaster.c (6.4.2)

Bad interaction between elog and postmaster.c (6.4.2)

From
Shez
Date:
Hi there,
    The bug that I reported which was causing the backend and all its
children to hang when an accept() on an incoming connection fails turns out to
because of elog()'s side effect of sending SIGQUIT to the backend.  This causes
the children to be sent signals while SIGCHLD is blocked (to prevent race's).
This seems to hang the backend forever.

I was going to check 6.5 before I sent this but I don't have enough time just
now, my aplogies for this.

A simple hack around is to remove the elog() when an accept fails.

Cheers
Shez
--
NSL (Internet) Ltd, 26 Forth Street, Edinburgh, EH1 3LH, UK
tel + 44 (0)131 477 8215  fax + 44 (0)131 477 8223  http://www.nsl.net

Re: [BUGS] Bad interaction between elog and postmaster.c (6.4.2)

From
Bruce Momjian
Date:
> Hi there,
>     The bug that I reported which was causing the backend and all its
> children to hang when an accept() on an incoming connection fails turns out to
> because of elog()'s side effect of sending SIGQUIT to the backend.  This causes
> the children to be sent signals while SIGCHLD is blocked (to prevent race's).
> This seems to hang the backend forever.
>
> I was going to check 6.5 before I sent this but I don't have enough time just
> now, my aplogies for this.
>
> A simple hack around is to remove the elog() when an accept fails.

This is redesigned in 6.5.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026