Re: BUG #15346: Replica fails to start after the crash
Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
From: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
To: michael@paquier.xyz
Cc: cyberdemn@gmail.com, pgsql-hackers@postgresql.org,
alvherre@2ndquadrant.com, 9erthalion6@gmail.com,
pgsql-bugs@lists.postgresql.org
Date: 2018-08-31T05:52:06Z
Lists: pgsql-bugs, pgsql-hackers
Attachments
- min-consistent-update-v3.patch (text/x-patch) patch v3
At Thu, 30 Aug 2018 18:48:55 -0700, Michael Paquier <michael@paquier.xyz> wrote in <20180831014855.GJ15446@paquier.xyz> > On Fri, Aug 31, 2018 at 09:48:46AM +0900, Kyotaro HORIGUCHI wrote: > > Please wait a bit.. I have a concern about this. > > Sure, please feel free. Thanks. I looked though the patch and related code and have a concern. The patch inhibits turning off updateMinRecoveryPoint on other than the startup process running crash-recovery except at the end of XLogNeedsFlush. > /* > * Check minRecoveryPoint for any other process than the startup > * process doing crash recovery, which should not update the control > * file value if crash recovery is still running. > */ > if (XLogRecPtrIsInvalid(minRecoveryPoint)) > updateMinRecoveryPoint = false; Even if any other processes than the startup calls the function during crash recovery, they don't have a means to turn on updateMinRecoveryPoint again. Actually the only process that calls the function druing crash recovery is the startup. bwriter and checkpointer doesn't. Hot-standby backends come after crash-recvery ends. After all, we just won't have an invalid minRecoveryPoint value there, and updateMinRecoverypoint must be true. Other than that I didn't find a problem. Please find the attached patch. I also have not come up with how to check the case automatically.. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Ensure correct minimum consistent point on standbys
- 65f39408ee71 9.3.25 landed
- d9638a326f72 9.4.20 landed
- f3520ff6fbf1 9.5.15 landed
- 4a9a5bb3fd2a 9.6.11 landed
- 2c8cff5dd60b 10.6 landed
- c34f8078aa35 11.0 landed
- c186ba135eca 12.0 landed
-
Prevent references to invalid relation pages after fresh promotion
- 8d68ee6f31ca 9.6.10 cited