On Tue, Mar 29, 2011 at 3:17 AM, Jerry Sievers <gsiever...@comcast.net>wrote:

>
> > What can cause this?? Why would these tcp and statement timeout settings
> not terminate the backend?
>
> Try trussing the backend process.  You may find it in a network IO wait
> trying to send data to a client that is hung or over a socket that was
> timed out by a firewall or network equipment.
>
> Such a condition will cause the backend to be unable to hear the
> cancel.  The statement will still show as running in pg_stat_activity.
>
> SIGTERM on such a backend will probably also fall on deaf ears.


I'm aware of that condition, which is exactly what the keepalive settings
are supposed to detect.

# strace -p 32307
Process 32307 attached - interrupt to quit
send(6, "\252\0\17\0\0\0\01042810425\0\0\0\01010010333\0\0\0\27"..., 880, 0

The client is remote (not unix-domain socket) so I expect tcp_keepalive
settings to kill this connection after 32 minutes.  That's not happening.
Not sure where else to look.

Derrick

Reply via email to