RE: Resetting recovery target parameters in pg_createsubscriber - Mailing list pgsql-hackers

From Hayato Kuroda (Fujitsu)
Subject RE: Resetting recovery target parameters in pg_createsubscriber
Date
Msg-id OSCPR01MB14966F169D92ED9D7BBFB9597F507A@OSCPR01MB14966.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Resetting recovery target parameters in pg_createsubscriber  (D Laaren <dlaaren8@gmail.com>)
Responses Re: Resetting recovery target parameters in pg_createsubscriber
List pgsql-hackers
Dear Laaren,

> I noticed that pg_createsubscriber sets recovery target params for
> correct recovery before converting a physical replica to a logical
> one but does not reset them afterward. It can lead to recovery
> failures in certain scenarios.
> For example, if recovery begins from a checkpoint where no WAL records
> need to be applied, the system might incorrectly determine that the
> recovery target was never reached because these parameters remain
> active.

Thanks for reporting.
I have known that parameters won't be overwritten, but I didn't recognize the
case that recovery fails.

> I’ve attached a TAP test to reproduce the issue.
> The proposed patch ensures all recovery parameters are reset after
> conversion to prevent such edge cases.

WriteRecoveryConfig() has been used to setup the recovery parameters. Can we
follow the way to restore them?

Also, can we add a test to 040_pg_createsubscriber? IIUC it is enough to check
one of recovery parameter is reset after the conversion.

Best regards,
Hayato Kuroda
FUJITSU LIMITED


pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Buffer locking is special (hints, checksums, AIO writes)
Next
From: Tatsuo Ishii
Date:
Subject: Re: Raw parse tree is not dumped to log