On Mon, Apr 25, 2005 at 03:42:35PM -0400, pgsql-bugs@counterstorm.com 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 (<alvherre[@]dcc.uchile.cl>)
One man's impedance mismatch is another man's layer of abstraction.
(Lincoln Yeoh)