Re: t/035_standby_logical_decoding.pl might fail on attempt to read wrong timeline - Mailing list pgsql-hackers

From Bertrand Drouvot
Subject Re: t/035_standby_logical_decoding.pl might fail on attempt to read wrong timeline
Date
Msg-id aiessEw9U8r8fs7L@bdtpg
Whole thread
In response to Re: t/035_standby_logical_decoding.pl might fail on attempt to read wrong timeline  (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>)
List 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

pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: Rename EXISTS-to-ANY converted subplan to exists_to_any
Next
From: jian he
Date:
Subject: Re: typedef struct WindowClause misleading comments