Re: Outdated replication protocol error?
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: Jeff Davis <pgsql@j-davis.com>, pgsql-hackers@postgresql.org, Simon Riggs <simon@2ndquadrant.com>, Craig Ringer <craig.ringer@enterprisedb.com>
Date: 2021-01-15T21:55:48Z
Lists: pgsql-hackers
Hi, On 2021-01-14 16:40:26 +0900, Fujii Masao wrote: > On 2021/01/12 9:06, Jeff Davis wrote: > > Commit 5ee2197767 (about 4 years old) introduced the error: > > > > "IDENTIFY_SYSTEM has not been run before START_REPLICATION" > > > > But it seems like running START_REPLICATION first works (at least in > > the simple case). > > > > We should either: > > > > 1. Document that IDENTIFY_SYSTEM must always be run before > > START_REPLICATION, and always issue a WARNING if that's not done (an > > ERROR might break existing applications); or > > > > 2. If the commit is out of date and no longer needed, or if it's easy > > enough to fix, just remove the error (and Assert a valid > > ThisTimeLineID). > > +1 to remove the error if START_REPLICATION can always work fine without > IDENTIFY_SYSTEM. I found that the error happens when we connect to the standby > and just run START_REPLICATION without IDENTIFY_SYSTEM. But I'm not sure > if IDENTIFY_SYSTEM is actually necessary even in that case. The current approach seems quite bad to me too. By that point the value could be just about arbitrarily out of date - but that doesn't really matter because GetStandbyFlushRecPtr() updates it. And for the !am_cascading_walsender it's trivial to compute. Has anybody dug out the thread leading to the commit? Greetings, Andres Freund
Commits
-
Eliminate replication protocol error related to IDENTIFY_SYSTEM.
- 8e7811e952b4 15.0 landed
-
Ensure ThisTimeLineID is valid before START_REPLICATION
- 5ee2197767f6 10.0 cited