Re: recovery_min_apply_delay in archive recovery causes assertion failure in latch
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Fujii Masao <masao.fujii@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-12-13T15:35:38Z
Lists: pgsql-hackers
On 2019-Oct-19, Michael Paquier wrote:
> On Thu, Oct 17, 2019 at 02:35:13PM +0900, Michael Paquier wrote:
> > ArchiveRecoveryRequested will be set to true if recovery.signal or
> > standby.signal are found, so it seems to me that you can make all
> > those checks more simple by removing from the equation
> > StandbyModeRequested, no? StandbyModeRequested is never set to true
> > if ArchiveRecoveryRequested is not itself true.
>
> For the sake of the archives, this has been applied by Fujii-san as of
> ec1259e8.
So, the commit message says
Fix failure of archive recovery with recovery_min_apply_delay enabled.
recovery_min_apply_delay parameter is intended for use with streaming
replication deployments. However, the document clearly explains that
the parameter will be honored in all cases if it's specified. So it should
take effect even if in archive recovery. But, previously, archive recovery
with recovery_min_apply_delay enabled always failed, and caused assertion
failure if --enable-caasert is enabled.
but I'm not clear how would this problem manifest in the case of a build
with assertions disabled. Will it keep sleeping beyond the specified
time?
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Fix failure of archive recovery with recovery_min_apply_delay enabled.
- 14c59185b24d 9.4.25 landed
- 1b2ba8874ad3 9.5.20 landed
- 579996bc2fc7 9.6.16 landed
- c455ee88ccae 10.11 landed
- f7b70700bc44 11.6 landed
- 9dfbf9a04398 12.1 landed
- ec1259e880dd 13.0 landed
-
Make crash recovery ignore recovery_min_apply_delay setting.
- 03666dfa1817 12.1 landed
- 9b95a36be8be 13.0 landed