quoth Greg Smith:
Herouth Maoz wrote:
Aren't socket writes supposed to have time outs of some sort? Stupid
policies notwithstanding, processes on the client side can disappear
for any number of reasons - bugs, power failures, whatever - and this
is not something that is supposed to cause a backend to hang, I would
assume.
As a general commentary on this area, in most cases where I've seen an
unkillable backend, which usually becomes noticed when the server
won't shutdown, have resulted from bad socket behavior. It's really a
tricky area to get right, and presuming the database backends will be
robust in the case of every possible weird OS behavior is hard to
guarantee.
However, if you can repeatably get the server into this bad state at
will, it may be worth spending some more time digging into this in
hopes there is something valuable to learn about your situation that
can improve the keepalive handling on the server side. Did you
mention your PostgreSQL server version and platform? I didn't see the
exact code path you're stuck in during a quick look at the code
involved (using a snapshot of recent development), which makes me
wonder if this isn't already a resolved problem in a newer version.
The server version is 8.3.1. Migration to a higher version might be
difficult as far as policies go, if there isn't a supported debian
package for it, but if you can point out a version where this has been
fixed I might be able to persuade my boss and sysadmin.
Thank you for referring me to that entry in the FAQ.
By the way, the situation repeated itself today as well.
Thanks,
Herouth
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general