Re: Network write errors (was: Re: Feature freeze date for
От | Tom Lane |
---|---|
Тема | Re: Network write errors (was: Re: Feature freeze date for |
Дата | |
Msg-id | 14834.1117072350@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Network write errors (was: Re: Feature freeze date for (Bruce Momjian <pgman@candle.pha.pa.us>) |
Список | pgsql-hackers |
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Andrew - Supernews wrote: >> 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). It sounds like you were following the input-from-client logic. Andrew is complaining about the output-to-client side. We deliberately don't abort on write-to-client failure. There have been periodic discussions about changing that, but I'm not convinced that the advocates for a change have made a good case. Right now, it's predictable that the backend only fails due to loss of connection when it waits for a new command. The behavior would become much less predictable if we allowed write failure to abort the query. As an example: whether an UPDATE command completes might depend on whether any invoked triggers try to issue NOTICEs. regards, tom lane
В списке pgsql-hackers по дате отправления: