| From: | Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com> |
|---|---|
| To: | "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com> |
| Cc: | Alexander Lakhin <exclusion(at)gmail(dot)com>, "xunengzhou(at)gmail(dot)com" <xunengzhou(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: t/035_standby_logical_decoding.pl might fail on attempt to read wrong timeline |
| Date: | 2026-06-09 06:03:28 |
| Message-ID: | aiessEw9U8r8fs7L@bdtpg |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
On Mon, Jun 08, 2026 at 08:47:48AM +0000, Bertrand Drouvot wrote:
> Attached:
>
> 0001: To fix this race
>
> Fix by checking GetWALInsertionTimeLineIfSet() when RecoveryInProgress()
> returns true. If InsertTimeLineID is already set (non-zero), the new timeline is
> established and we use it directly, avoiding attempts to read from segments that
> may have been removed.
>
> 0002: Adding a test in 035_standby_logical_decoding.pl
>
> It makes use of a new injection point "promotion-after-wal-segment-cleanup" in
> StartupXLOG(), right after CleanupAfterArchiveRecovery() removes old timeline
> WAL segments but before SharedRecoveryState is set to RECOVERY_STATE_DONE.
>
> The test fails without the fix in 0001 so it also somehow proves that the
> diagnostic is right.
>
> 0003: Apply the same timeline fix to read_local_xlog_page_guts()
>
> Indeed, it could hit the same race as mentioned by Xuneng-San.
>
> 0004: Add a test for 0003
Re-attaching v1 patches here to have the cfbot focusing on those.
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
| Attachment | Content-Type | Size |
|---|---|---|
| v1-0001-Fix-race-condition-in-logical-decoding-timeline-s.patch | text/x-diff | 2.6 KB |
| v1-0002-Add-injection-point-test-for-logical-decoding-tim.patch | text/x-diff | 4.8 KB |
| v1-0003-Apply-the-same-timeline-fix-to-read_local_xlog_pa.patch | text/x-diff | 1.8 KB |
| v1-0004-Add-SQL-path-test-for-read_local_xlog_page_guts-t.patch | text/x-diff | 3.9 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | jian he | 2026-06-09 06:11:57 | Re: typedef struct WindowClause misleading comments |
| Previous Message | Fujii Masao | 2026-06-09 06:01:48 | Re: Rename EXISTS-to-ANY converted subplan to exists_to_any |