pgsql: Remove the unnecessary PrepareWrite in pgoutput.

From: Amit Kapila <akapila(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Remove the unnecessary PrepareWrite in pgoutput.
Date: 2021-02-16 02:04:48
Message-ID: E1lBpjM-0006Z7-Kn@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove the unnecessary PrepareWrite in pgoutput.

This issue exists from the inception of this code (PG-10) but got exposed
by the recent commit ce0fdbfe97 where we are using origins in tablesync
workers. The problem was that we were sometimes sending the prepare_write
('w') message but then the actual message was not being sent and on the
subscriber side, we always expect a message after prepare_write message
which led to this bug.

I refrained from backpatching this because there is no way in the core
code to hit this prior to commit ce0fdbfe97 and we haven't received any
complaints so far.

Reported-by: Erik Rijkers
Author: Amit Kapila and Vignesh C
Tested-by: Erik Rijkers
Discussion: https://postgr.es/m/1295168140.139428.1613133237154@webmailclassic.xs4all.nl

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f672df5fdd22dac14c98d0a0bf5bbaa6ab17f8a5

Modified Files
--------------
src/backend/replication/pgoutput/pgoutput.c | 19 ++++----
src/test/subscription/t/100_bugs.pl | 69 +++++++++++++++++++++++++++++
2 files changed, 80 insertions(+), 8 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2021-02-16 17:07:26 pgsql: Convert tsginidx.c's GIN indexing logic to fully ternary operati
Previous Message Andres Freund 2021-02-16 01:29:54 pgsql: Fix heap_page_prune() parameter order confusion introduced in dc