On Wed, Jan 26, 2022 at 12:14 AM David G. Johnston <david.g.johns...@gmail.com> wrote: > > > On Tue, Jan 25, 2022 at 8:09 AM Masahiko Sawada <sawada.m...@gmail.com> wrote: >> >> On Tue, Jan 25, 2022 at 11:58 PM David G. Johnston >> <david.g.johns...@gmail.com> wrote: >> > >> > On Tue, Jan 25, 2022 at 7:47 AM Masahiko Sawada <sawada.m...@gmail.com> >> > wrote: >> >> >> >> Yeah, I think it's a good idea to clear the subskipxid after the first >> >> transaction regardless of whether the worker skipped it. >> >> >> > >> > So basically instead of stopping the worker with an error you suggest >> > having the worker continue applying changes (after resetting subskipxid, >> > and - arguably - the ?_error_* fields). Log the transaction xid mis-match >> > as a warning in the log file as opposed to an error. >> >> Agreed, I think it's better to log a warning than to raise an error. >> In the case where the user specified the wrong XID, the worker should >> fail again due to the same error. >> > > If it remains possible for the system to accept a wrongly specified XID I > would agree that this behavior is preferable. At least when the user wonders > why the skip didn't work and they are seeing the same error again they will > have a log entry warning telling them their XID choice was incorrect.
Yes. > I would prefer that the system not accept a wrongly specified XID and the > user be told directly and sooner that their XID choice was incorrect. Given that we cannot use rely on the pg_stat_subscription_workers view for this purpose, we would need either a new sub-system that tracks each logical replication status so the system can set the error XID to subskipxid, or to wait for shared-memory based stats collector. While agreeing that ideally, we need such a sub-system I'm concerned that everyone will agree to add complexity for this feature. That having been said, if there is a significant need for it, we can implement it as an improvement. Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/