Re: SQLSTATE for replication connection failures

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: SQLSTATE for replication connection failures
Date: 2021-06-14 09:17:44
Message-ID: CAA4eK1KY1L2YGoup_ANw0Q9ctmLMVJS=Po-pb8pm9xDeokc1AA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Jun 12, 2021 at 9:12 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> So far as I can find, just about everyplace that deals with replication
> connections has slipshod error reporting. An example from worker.c is
>
> LogRepWorkerWalRcvConn = walrcv_connect(MySubscription->conninfo, true,
> MySubscription->name, &err);
> if (LogRepWorkerWalRcvConn == NULL)
> ereport(ERROR,
> (errmsg("could not connect to the publisher: %s", err)));
>
> Because of the lack of any errcode() call, this failure will be reported
> as XX000 ERRCODE_INTERNAL_ERROR, which is surely not appropriate.
> worker.c is in good company though, because EVERY caller of walrcv_connect
> is equally slipshod.
>
> Shall we just use ERRCODE_CONNECTION_FAILURE for these failures, or
> would it be better to invent another SQLSTATE code? Arguably,
> ERRCODE_CONNECTION_FAILURE is meant for failures of client connections;
> but on the other hand, a replication connection is a sort of client.
>

Your reasoning sounds good to me. So, +1 for using ERRCODE_CONNECTION_FAILURE.

--
With Regards,
Amit Kapila.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabien COELHO 2021-06-14 09:30:14 Re: pgbench bug candidate: negative "initial connection time"
Previous Message Fabien COELHO 2021-06-14 08:57:07 Re: Fix around conn_duration in pgbench