Denis Perchine <dyp@perchine.com> writes:
> Looks like it tries to read on socket which is already closed from other
> side. And it seems like recv did not return in this case. Is this OK, or
> kernel bug?
Sounds like a kernel bug --- recv() should *always* return immediately
if the socket is known closed. I'd think the kernel didn't believe the
socket was closed, if not for your lsof evidence. That's certainly
pointing a finger at the kernel...
We've heard (undetailed) reports before of backends hanging around when
the client was long gone. I always assumed that the client machine had
failed to disconnect properly, but now I wonder. A kernel bug might
explain those reports.
regards, tom lane