Re: [EXTERNAL] Re: Add ETIMEDOUT to ALL_CONNECTION_FAILURE_ERRNOS
| От | Jelte Fennema |
|---|---|
| Тема | Re: [EXTERNAL] Re: Add ETIMEDOUT to ALL_CONNECTION_FAILURE_ERRNOS |
| Дата | |
| Msg-id | AM5PR83MB01783443184B8B9D24DC5A70F7AA9@AM5PR83MB0178.EURPRD83.prod.outlook.com обсуждение исходный текст |
| Ответ на | Re: Add ETIMEDOUT to ALL_CONNECTION_FAILURE_ERRNOS (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: [EXTERNAL] Re: Add ETIMEDOUT to ALL_CONNECTION_FAILURE_ERRNOS
|
| Список | pgsql-hackers |
Attached is a new patch that I think addresses your concerns.
From: Tom Lane <tgl@sss.pgh.pa.us>
Sent: Thursday, September 30, 2021 16:04
To: Jelte Fennema <Jelte.Fennema@microsoft.com>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Subject: [EXTERNAL] Re: Add ETIMEDOUT to ALL_CONNECTION_FAILURE_ERRNOS
Sent: Thursday, September 30, 2021 16:04
To: Jelte Fennema <Jelte.Fennema@microsoft.com>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Subject: [EXTERNAL] Re: Add ETIMEDOUT to ALL_CONNECTION_FAILURE_ERRNOS
Jelte Fennema <Jelte.Fennema@microsoft.com> writes:
> Previously successfully opened TCP connections can still fail on reads
> with ETIMEDOUT. This should be considered a connection failure, so that
> the connection in libpq is marked as CONNECTION_BAD. The reason I got an
> ETIMEDOUT was, because I had set a low tcp_user_timeout in the
> connection string. However, it can probably also happen due to
> keepalive limits being reached.
I'm dubious about the portability of this patch, because we don't
use ETIMEDOUT elsewhere. strerror.c thinks it may not exist,
which is probably overly conservative because POSIX has required
it since SUSv2. The bigger problem is that it's not accounted for in
the WSAxxx mapping done in port/win32_port.h and TranslateSocketError.
That'd have to be fixed for this to behave reasonably on Windows,
I think.
regards, tom lane
> Previously successfully opened TCP connections can still fail on reads
> with ETIMEDOUT. This should be considered a connection failure, so that
> the connection in libpq is marked as CONNECTION_BAD. The reason I got an
> ETIMEDOUT was, because I had set a low tcp_user_timeout in the
> connection string. However, it can probably also happen due to
> keepalive limits being reached.
I'm dubious about the portability of this patch, because we don't
use ETIMEDOUT elsewhere. strerror.c thinks it may not exist,
which is probably overly conservative because POSIX has required
it since SUSv2. The bigger problem is that it's not accounted for in
the WSAxxx mapping done in port/win32_port.h and TranslateSocketError.
That'd have to be fixed for this to behave reasonably on Windows,
I think.
regards, tom lane
Вложения
В списке pgsql-hackers по дате отправления: