On Tue, Mar 29, 2011 at 3:17 AM, Jerry Sievers <gsievers19@xxxxxxxxxxx> wrote:
Try trussing the backend process. You may find it in a network IO wait
> What can cause this?? Why would these tcp and statement timeout settings not terminate the backend?
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