Re: BUG: Cascading standby fails to reconnect after falling back to archive recovery
Marco Nenciarini <marco.nenciarini@enterprisedb.com>
From: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
To: Xuneng Zhou <xunengzhou@gmail.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, pgsql-hackers@postgresql.org
Date: 2026-03-17T09:31:23Z
Lists: pgsql-hackers
Attachments
- v2-backpatch-0001-Fix-cascading-standby-reconnect-failure-after-archiv.patch (text/x-patch) patch v2-0001
Since this bug dates back to 9.3, the fix will likely need backpatching. The v2 patch changes the walrcv_identify_system() signature, which would be an ABI break on stable branches (walrcv_identify_system_fn is a function pointer in the WalReceiverFunctionsType struct). Attached is a backpatch-compatible variant that avoids the API change. Instead of adding a parameter, libpqrcv_identify_system() stores the flush position in a new global variable (WalRcvIdentifySystemLsn), and the walreceiver reads it directly. The fix logic and TAP test are otherwise identical. For master I'd still prefer the v2 approach with the extended signature, since it's cleaner and there's no ABI constraint. Best regards, Marco
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix scenario where streaming standby gets stuck at a continuation record.
- 066871980183 11.0 cited
-
Allow a streaming replication standby to follow a timeline switch.
- abfd192b1b5b 9.3.0 cited