| From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
|---|---|
| To: | andrew(at)supernews(dot)com |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Network write errors (was: Re: Feature freeze date for |
| Date: | 2005-05-26 01:27:23 |
| Message-ID: | 200505260127.j4Q1RNj06476@candle.pha.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers pgsql-patches |
Andrew - Supernews wrote:
> On 2005-05-01, Peter Eisentraut <peter_e(at)gmx(dot)net> wrote:
> > The problem, as I understand it, is that if you have a long-running
> > query and the client process disappears, the query keeps running and
> > holds whatever resources it may have until it finishes. In fact, it
> > keeps sending data to the client and keeps ignoring the SIGPIPE it gets
> > (in case of a Unix-domain socket connection).
>
> Ignoring the SIGPIPE is exactly the right thing to do.
>
> What's _not_ a good idea is ignoring the EPIPE error from write(), which
> seems to currently be reported via ereport(COMMERROR) which doesn't try
> and abort the query as far as I can tell.
Where are you seeing this? I looked from PostgresMain() to
ReadCommand() to SocketBackend() to pq_getbyte() which returns EOF, and
PostgresMain checks that and does a proc_exit(0).
I think the main problem is that a long-running query never tries to
interact with the client during the query.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2005-05-26 01:31:45 | Re: Source Code Help Needed |
| Previous Message | Jaime Casanova | 2005-05-26 00:32:10 | Re: adding a function to pg_proc.h |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2005-05-26 01:52:30 | Re: Network write errors (was: Re: Feature freeze date for |
| Previous Message | Bruce Momjian | 2005-05-26 00:16:32 | pgsql: Add PL/pgSQL SQLSTATE and SQLERRM support which sets these values |