On Mon, Apr 25, 2005 at 03:42:35PM -0400, [EMAIL PROTECTED] wrote:

> The way the notify gets called is a bit convoluted.  Our C program
> performs an insert in table T.  Some triggers run doing all sorts of
> stuff in the background involving changes to other tables.  Under some
> circumstances, a row is inserted by the trigger into table W (a
> trigger off of that is executed) and the parent trigger performs a
> notify.  This, while expensive, normally all works.  However, at a
> customer site we saw the postgres process hang out in async_notify and
> refuse to allow more inserts.

What do you mean by "in the background"?  Do you fork() the backend
process?

IIRC there have been bugs in listen/notify by which a backend could hang
forever.  Some were fixed, but others main remain.  Can you post more
details of the involved functions and triggers?

-- 
Alvaro Herrera (<[EMAIL PROTECTED]>)
One man's impedance mismatch is another man's layer of abstraction.
(Lincoln Yeoh)

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to