Re: Outdated replication protocol error?

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: Andres Freund <andres@anarazel.de>, Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: pgsql-hackers@postgresql.org, Simon Riggs <simon@2ndquadrant.com>, Craig Ringer <craig.ringer@enterprisedb.com>
Date: 2021-06-16T22:59:11Z
Lists: pgsql-hackers
On Fri, 2021-01-15 at 13:55 -0800, Andres Freund wrote:
> > > 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.

[ digging up old thread ]

It seems everyone agrees that the current behavior is strange. Any
ideas on a solution here?

> Has anybody dug out the thread leading to the commit?


https://www.postgresql.org/message-id/CAMsr%2BYEN04ztb%2BSDb_UfD72Kg5M3F%2BCpad31QBKT2rRjysmxRg%40mail.gmail.com

Regards,
	Jeff Davis





Commits

  1. Eliminate replication protocol error related to IDENTIFY_SYSTEM.

  2. Ensure ThisTimeLineID is valid before START_REPLICATION