Re: PITR promote bug: Checkpointer writes to older timeline
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: masao.fujii@oss.nttdata.com
Cc: soumyadeep2007@gmail.com, hlinnaka@iki.fi,
pgsql-hackers@postgresql.org, michael@paquier.xyz, jyih@vmware.com,
kyeap@vmware.com
Date: 2021-03-04T08:10:36Z
Lists: pgsql-hackers
At Thu, 4 Mar 2021 14:57:13 +0900, Fujii Masao <masao.fujii@oss.nttdata.com> wrote in > > read_local_xlog_page() works as a part of logical decoding and has > > responsibility to update ThisTimeLineID properly. As the comment in > > the function, it is the proper place to update ThisTimeLineID since we > > miss a timeline change if we check it earlier and the function uses > > the value just after. So we cannot change that behavior of the > > function. That is, neither of them doesn't seem to be the right fix. > > Could you tell me what actual issue happens if read_local_xlog_page() > resets > ThisTimeLineID at the end? Some replication slot-related functions > that use > read_local_xlog_page() can be executed even during recovery. For > example, > you mean that, when timeline swithes during recovery, those functions > behave incorrectly if ThisTimeLineID is reset? The most significant point for me was I'm not fully convinced that we can safely (or validly) remove the fucntion to maintain the variable from read_local_xlog_page. > * RecoveryInProgress() will update ThisTimeLineID when it first > * notices recovery finishes, so we only have to maintain it for the > * local process until recovery ends. read_local_xlog_page is *designed* to maintain ThisTimeLineID. Currently it doesn't seem utilized but I think it's sufficiently reasonable that the function maintains ThisTimeLineID. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix timeline assignment in checkpoints with 2PC transactions
- 1ec7162a8d34 10.17 landed
- f1d550f188e2 11.12 landed
- 4b1dd9b1ea75 12.7 landed
- 6e5ce888ad1e 13.3 landed
- 595b9cba2ab0 14.0 landed