| From: | Marco Nenciarini <marco(dot)nenciarini(at)enterprisedb(dot)com> |
|---|---|
| To: | Xuneng Zhou <xunengzhou(at)gmail(dot)com> |
| Cc: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: BUG: Cascading standby fails to reconnect after falling back to archive recovery |
| Date: | 2026-04-27 16:00:45 |
| Message-ID: | CA+nrD2ctF0-niJ3nKAvVWrvw0=sWZdtoQvuMx7GDGZdy5QCRKA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Registered in PG20-1: https://commitfest.postgresql.org/patch/6716/
On Sat, Mar 21, 2026 at 11:52 AM Marco Nenciarini <
marco(dot)nenciarini(at)enterprisedb(dot)com> wrote:
> Here are the v6 patches.
>
> Xuneng correctly pointed out that RequestXLogStreaming rounds down,
> not up, so it isn't the cause of the gap. The actual mechanism is
> that archive recovery processes whole segment files: after both nodes
> replay the same archived segment N, the cascade's next read position
> lands at the start of segment N+1, while the upstream's
> GetStandbyFlushRecPtr returns replayPtr inside segment N.
>
> Changes from v5:
>
> - Updated the code comment and commit message to describe the correct
> root cause (archive recovery segment granularity, not
> RequestXLogStreaming truncation).
>
> - Reset the catchup state when the upstream is no longer behind.
> Without this, if the walreceiver successfully streams, the
> connection breaks, and it loops back to find itself ahead again,
> the stale deadline from the previous wait would cause an immediate
> timeout.
>
> Two patches attached: v6-0001 for master (extends the
> walrcv_identify_system API) and v6-backpatch-0001 for stable branches
> (global variable to preserve ABI).
>
> Best regards,
> Marco
>
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dilip Kumar | 2026-04-27 16:21:00 | Re: Proposal: Conflict log history table for Logical Replication |
| Previous Message | Nisha Moond | 2026-04-27 15:25:36 | Re: Proposal: Conflict log history table for Logical Replication |