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
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings