Tom Lane wrote:
>
>> I recompiled the server with debugging symbols enabled and then did the
>> following experiment: I started a query which I knew would take some
>> time. While the query executed I disconnected my dial-up line. After
>> reconnecting the backend process was still there (still SELECTing).
>> Meanwhile the query is finished and the process is idle, but it's still
>> present.
>>
>
> That is probably not the same situation because (assuming the query
> didn't produce a lot of output) the kernel does not yet think that the
> network connection is lost irretrievably. You'd have to wait for the
> TCP timeout interval to elapse, whereupon the kernel would report the
> connection lost (EPIPE or ECONNRESET error), whereupon we'd enter the
> code path shown above.
>
That's what I also thought, but unfortunately it doesn't seem to be the
same situation. After a while, the connection disappears and the server
log says (quite correct in my opinion):
<2007-11-11 18:45:43 CET - chschroe> LOG: could not receive data from
client: Die Wartezeit für die Verbindung ist abgelaufen
<2007-11-11 18:45:43 CET - chschroe> LOG: unexpected EOF on client
connection
> One thing I'm suddenly thinking might be related: didn't you mention
> that you have some process that goes around and SIGINT's backends that
> it thinks are running too long? I'm wondering if a SIGINT event is a
> necessary component of producing the problem ...
>
Maybe. On the other hand, I sent a SIGINT to my process and it
nonetheless didn't show the strange behaviour. To test this I will
change the script so that it will leave alone the processes of one of
the users.
I think the users will create some more unkillable processes tomorrow.
As soon as I have some, I will send you the login data for the server so
that you can have a look for yourself.
Regards,
Christian
--
Deriva GmbH Tel.: +49 551 489500-42
Financial IT and Consulting Fax: +49 551 489500-91
Hans-Böckler-Straße 2 http://www.deriva.de
D-37079 Göttingen
Deriva CA Certificate: http://www.deriva.de/deriva-ca.cer